> 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
