On Wed, Apr 28, 2021 at 12:00:34PM +0100, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" > > This series adds support for acceleration of virtiofs via DAX > mapping, using features added in the 5.11 Linux kernel. > > DAX originally existed in the kernel for mapping real storage > devices directly into memory, so that reads/writes turn into > reads/writes directly mapped into the storage device. > > virtiofs's DAX support is similar; a PCI BAR is exposed on the > virtiofs device corresponding to a DAX 'cache' of a user defined size. > The guest daemon then requests files to be mapped into that cache; > when that happens the virtiofsd sends filedescriptors and commands back > to the QEMU that mmap's those files directly into the memory slot > exposed to kvm. The guest can then directly read/write to the files > exposed by virtiofs by reading/writing into the BAR. > > A typical invocation would be: > -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs,cache-size=4G > > and then the guest must mount with -o dax > > Note that the cache doesn't really take VM up on the host, because > everything placed there is just an mmap of a file, so you can afford > to use quite a large cache size. > > Unlike a real DAX device, the cache is a finite size that's > potentially smaller than the underlying filesystem (especially when > mapping granuality is taken into account). Mapping, unmapping and > remapping must take place to juggle files into the cache if it's too > small. Some workloads benefit more than others. > > Gotchas: > a) If something else on the host truncates an mmap'd file, > kvm gets rather upset; for this reason it's advised that DAX is > currently only suitable for use on non-shared filesystems. > > (This series, with a couple of other patches, is at: > https://gitlab.com/virtio-fs/qemu/-/tree/dgilbert-dax-2021-04-28 ) Overall this looks close but I don't think the FSETID support should be added to QEMU. Please see my comment on the final patch. Stefan