No objections to the code, a text change below: I fix it when applying or you send v4, see the cover letter reply.
On Fri, 13 Nov 2026 14:11:25 +0300, Andrey Zhadchenko wrote: > - a partial discard punches the hole synchronously in the worker. > None of this is new: before the fast path main kwork did the same > allocations and submissions for every request, and a sleep there > stalled the whole device, not one CPU. The punch hole case is the > notable one, as it waits for all direct I/O in flight on the image. Item 4 of the cover letter reply: - add to the list: an md page cache miss in parse_metadata() allocates the page and submits its read from the worker, and process_read_qio() splits reads with mempool_alloc(); - "it waits for all direct I/O in flight on the image" holds on ext4 and xfs only. Why: the v3 changelog says this list is complete, and these two sleep in the worker too. fuse_file_fallocate() does not call inode_dio_wait(), and images on vstorage are on FUSE, so there the punch does not wait for direct I/O. -- Konstantin Khorenko, Virtuozzo Linux Kernel Team _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
