[RFC v2 0/5] virtiofs: map buffer out of virtqueue lock
From: Eugenio Pérez
Date: Fri Feb 21 2025 - 12:14:20 EST
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