This is useful for some setups like swiotlb or VDUSE where the DMA operations are expensive and/or need to be performed with a write lock. After applying these patches, fio read test goes from 1124MiB/s to 1263.14MiB/s. v2: * Follow current add_premapped virtio API * Disable notification more aggressive too. --- Sending this series to obtain feedback if this is the right way to go & to profile it properly. TODO: Profile multiqueue. TODO: Handling errors. TODO: Do the same for hiprio queue. TODO: Can we batch maps? virtiofs always sends many buffers. Eugenio Pérez (5): vduse: add virtio_fs to allowed dev id virtiofs: Move stack sg to fuse_req virtio_ring: add api for premapped out and in buffer chain virtiofs: perform DMA operations out of the spinlock virtiofs: Disable notifications more aggresively drivers/vdpa/vdpa_user/vduse_dev.c | 1 + drivers/virtio/virtio_ring.c | 35 ++++++++++++ fs/fuse/fuse_i.h | 7 +++ fs/fuse/virtio_fs.c | 85 +++++++++++++++++++++--------- include/linux/virtio.h | 7 +++ 5 files changed, 110 insertions(+), 25 deletions(-) -- 2.48.1