Asahi Lina wrote: > Hi, > > On February 6, 2025 1:10:15 AM GMT+01:00, Dan Williams <dan.j.williams@xxxxxxxxx> 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.