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

Dan Williams
2025-02-06T19:45:16Z

Asahi Lina wrote:
> Hi,
>
> On February 6, 2025 1:10:15 AM GMT+01:00, Dan Williams <dan.j.williams@intel.com> wrote:
> >Vivek Goyal wrote:
> >> On Fri, Jan 10, 2025 at 05:00:29PM +1100, Alistair Popple wrote:
> >> > 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.