On Wed, Jul 16, 2025 at 02:38:23PM -0400, Brian Song wrote: > This RFC patch represents an initial implementation of the FUSE-over- > io_uring Exports idea proposed for Google Summer of Code (2025) under > the QEMU community: > https://wiki.qemu.org/Google_Summer_of_Code_2025#FUSE-over-io_uring_exports > > The implementation approach is primarily borrowed from how libfuse > interacts with the kernel. > > FUSE-over-io_uring (https://docs.kernel.org/next/filesystems/fuse-io- > uring.html) has been officially merged into the Linux kernel. The idea > is to replace the traditional /dev/fuse based communication with a more > efficient io_uring-based approach. In this model, userspace registers > io_uring SQEs via the FUSE_IO_URING_CMD_REGISTER opcode, and then waits > for the kernel to forward FUSE requests as CQEs. These are processed by > the FUSE exports implementation in userspace and then committed back to > the kernel using FUSE_IO_URING_CMD_COMMIT_AND_FETCH. > > To enable this feature in qemu-export-daemon, simply add the uring=on > option to the export configuration.
For consistency with the --blockdev file,aio=io_uring option, please name it "io_uring=on" instead of "uring=on". > > As this patch is still in the RFC stage, it currently supports **only > single thread**. Due to protocol requirements in FUSE-over-io_uring, > the number of FUSE threads must match the number of CPUs. Therefore, > this initial version only works on single-core VMs (i.e., QEMU started > with -smp 1) or single core machine. > > Brian Song (1): > block/export: FUSE-over-io_uring Support for QEMU FUSE Exports > > block/export/fuse.c | 423 +++++++++++++++++++++++++-- > docs/tools/qemu-storage-daemon.rst | 10 +- > qapi/block-export.json | 6 +- > storage-daemon/qemu-storage-daemon.c | 1 + > util/fdmon-io_uring.c | 5 +- > 5 files changed, 420 insertions(+), 25 deletions(-) > > -- > 2.50.1 >
signature.asc
Description: PGP signature