[Devel] [PATCH 0/7] drivers/md/dm-qcow2: per-qio fast path

Konstantin Khorenko khorenko at virtuozzo.com
Thu Nov 5 00:35:09 MSK 2026


I won't apply this version, please send v2 with the changes below.

On Thu, 29 Oct 2026 17:03:39 +0300, Andrey Zhadchenko wrote:
> dm-qcow2 processes every request consequentially in a single kwork.
> Unfortunately this introduces latency and cpu-bound limits. This
> patchset addresses the problem by laying per-qio tasks foundation:
> qios can be executed in parallel on the same workqueue. For now cover
> only requests with metadata fully allocated.

What to change for v2:

1. Patches 2 and 5, code: a fast-path write can miss the wbd of the
   L2 page that maps it, and then it is acked before that L2 entry is
   on disk. Handle MD_WRITEBACK in perform_rw_mapped() the way
   parse_l2() does.

2. Patch 3, code: stop the fast path before the R1/R2 lookup in
   parse_metadata(), it never needs those pages.

3. Patch 1, commit message: say what fails today and add a Fixes tag
   for 412d5a4f7bf1b ("dm/dm-qcow2: add llseek_hole").

4. Patch 7, code and message: bound the drain loop, fix the sentence
   about re-queued qios, say that the fast path is now serial per
   submitting CPU.

5. Patches 6 and 7, commit messages: move the measured numbers into
   this thread.

6. Patch 4, code: update the QLIST_EMBEDDED comment.

7. Open remarks from the thread, please answer or fix them in v2:
   Sashiko on patch 1 (unbounded retry) and patch 5 (list_add order),
   Alexander on patch 3 (typo, magic 2) and patch 6 (swap 6 and 7).

8. Cover letter of v2:
   - "consequentially" becomes "sequentially";
   - not only fully allocated requests go fast: reads of unallocated
     or lower-delta clusters and partial discards do too, say that;
   - mention DM_TARGET_NOWAIT and the per-cpu batching.

Details on each item are in the replies to the patches. Alexander's
Reviewed-by should not be carried over to v2 as is, item 1 changes
the code he reviewed.

-- 
Konstantin Khorenko,
Virtuozzo Linux Kernel Team



More information about the Devel mailing list