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

Asahi Lina
2025-02-06T12:42:51Z

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.

(Sorry for the unwrapped reply, I'm on mobile right now.)

~~ Lina