Re: [PATCH 15/52] fuse: map virtio_fs DAX window BAR

From: Dan Williams
Date: Thu Dec 13 2018 - 14:56:02 EST


On Mon, Dec 10, 2018 at 9:22 AM Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
>
> From: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
>
> Experimental QEMU code introduces an MMIO BAR for mapping portions of
> files in the virtio-fs device. Map this BAR so that FUSE DAX can access
> file contents from the host page cache.

FUSE DAX sounds terrifying, can you explain a bit more about what this is?

> The DAX window is accessed by the fs/dax.c infrastructure and must have
> struct pages (at least on x86). Use devm_memremap_pages() to map the
> DAX window PCI BAR and allocate struct page.

PCI BAR space is not cache coherent, what prevents these pages from
being used in paths that would do:

object = page_address(pfn_to_page(virtio_fs_pfn));

...?