> dm-qcow2 heavily relies on main kwork do_qcow2_work() being
> sequential. All metadata change happens there and cannot
> run in parallel. Unfortunately that caps dm-qcow2 performance.
> But if the request does not require metadata changes we should
> be able to immediately dispatch it.
> process_one_qio() and handle_metadata() already know what to
> do: just add a fast flag to process_one_qio(), passed as
> avoid_metadata_changes to handle_metadata(), and return codes.
> While at it, just return in handle_metadata() instead of
> setting ret to 0 and jumping to if (ret < 0) label.
> 
> Also pass the flag to parse_metadata() and return to the slow path
> before it looks up R1/R2 pages. They are needed only by COW writes
> and cluster unmapping discards, which go to the slow path anyway.
> Besides the useless lookup, R1 is unstable outside main kwork: an R1
> [ ... ]
> with wpc_readers.
> 
> https://virtuozzo.atlassian.net/browse/VSTOR-95494
> Feature: dm-qcow2: block device over QCOW2 files driver
> Signed-off-by: Andrey Zhadchenko <[email protected]>

Sashiko has reviewed this patch and found no issues.

-- 
Sashiko AI review ยท 
https://sashiko.vzint.dev/#/patchset/[email protected]?part=2


_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to