Thread (99 messages) 99 messages, 10 authors, 2025-02-09

Re: [PATCH v6 01/26] fuse: Fix dax truncate/punch_hole fault path

From: Dan Williams <hidden>
Date: 2025-02-06 19:45:16
Also in: linux-arm-kernel, linux-cxl, linux-doc, linux-ext4, linux-fsdevel, linux-mm, linux-xfs, lkml, loongarch, nvdimm

Asahi Lina wrote:
Hi,

On February 6, 2025 1:10:15 AM GMT+01:00, Dan Williams [off-list ref] wrote:
quoted
Vivek Goyal wrote:
quoted
On Fri, Jan 10, 2025 at 05:00:29PM +1100, Alistair Popple wrote:
quoted
FS DAX requires file systems to call into the DAX layout prior to unlinking
inodes to ensure there is no ongoing DMA or other remote access to the
direct mapped page. The fuse file system implements
fuse_dax_break_layouts() to do this which includes a comment indicating
that passing dmap_end == 0 leads to unmapping of the whole file.

However this is not true - passing dmap_end == 0 will not unmap anything
before dmap_start, and further more dax_layout_busy_page_range() will not
scan any of the range to see if there maybe ongoing DMA access to the
range. Fix this by passing -1 for dmap_end to fuse_dax_break_layouts()
which will invalidate the entire file range to
dax_layout_busy_page_range().
Hi Alistair,

Thanks for fixing DAX related issues for virtiofs. I am wondering how are
you testing DAX with virtiofs. AFAIK, we don't have DAX support in Rust
virtiofsd. C version of virtiofsd used to have out of the tree patches
for DAX. But C version got deprecated long time ago.

Do you have another implementation of virtiofsd somewhere else which
supports DAX and allows for testing DAX related changes?
I have personally never seen a virtiofs-dax test. It sounds like you are
saying we can deprecate that support if there are no longer any users.
Or, do you expect that C-virtiofsd is alive in the ecosystem?
I accidentally replied offlist, but I wanted to mention that libkrun
supports DAX and we use it in muvm. It's a critical part of x11bridge
functionality, since it uses DAX to share X11 shm fences between X11
clients in the VM and the XWayland server on the host, which only
works if the mmaps are coherent.
Ah, good to hear. It would be lovely to integrate an muvm smoketest
somewhere in https://github.com/pmem/ndctl/tree/main/test so that we
have early warning on potential breakage.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help