[Devel] [PATCH VZ10 v2 0/7] dm-qcow: lseek improvements

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Mon Aug 24 17:38:41 MSK 2026


Reviewed-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>

On 8/19/26 02:07, Andrey Zhadchenko wrote:
> This patchset is mostly about improving dm-qcow2 lseek speed. L2 md
> pages can now be scanned in batch with simple for() instead of heavy
> parse_metadata(). Seek qios for backing images are now called with
> a range bigger than 1 cluster if possible.
> Also fix a few clamping bugs and use correct comparison for seek
> modes.
> 
> v2:
> - patch #4 "fix seek skip to the next L2 table"
>  - changed l2 calculation to a simplier round_up
>  - allow l2 skip if the backing data does not exist (e.g. lower is
> shorter)
> - patch #6 "seek unallocated L2 entries in one pass within md"
>  - add forgotten to_sector() when skipping unallocated entries
> - NEW patch #7 adressing patch #5 edge case when we do to_sector(end),
> where 'end' may be not sector aligned, thus causing endless loop.
> 
> Andrey Zhadchenko (7):
>   drivers/md/dm-qcow2: fix lower delta seek window clamp
>   drivers/md/dm-qcow2: keep seek parse window within limit
>   drivers/md/dm-qcow2: fix seek constant comparison
>   drivers/md/dm-qcow2: fix seek skip to the next L2 table
>   drivers/md/dm-qcow2: scan lower delta in one pass over empty L1 entry
>   drivers/md/dm-qcow2: seek unallocated L2 entries in one pass within md
>   drivers/md/dm-qcow2: forbid unaligned virtual size for images
> 
>  drivers/md/dm-qcow2-map.c    | 117 ++++++++++++++++++++++++-----------
>  drivers/md/dm-qcow2-target.c |   1 +
>  2 files changed, 82 insertions(+), 36 deletions(-)
> 

-- 
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.



More information about the Devel mailing list