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

Reply via email to