diff options
author | Bernd Schubert <bschubert@ddn.com> | 2025-04-28 21:47:27 +0200 |
---|---|---|
committer | Bernd Schubert <bernd@bsbernd.com> | 2025-04-28 22:51:28 +0200 |
commit | e122b3faf365df72ca397b8ed88e7dcff8789cca (patch) | |
tree | e5614e8f13f74407bab85513631c2a127f5f5a0e /doc/README.fuse-io-uring | |
parent | e70f91cb6387a4e14e7a4a4ebe9dc1100cbc1126 (diff) | |
download | libfuse-e122b3faf365df72ca397b8ed88e7dcff8789cca.tar.gz |
Add a README for fuse-over-io-uring
Also update the comment description of fuse_uring.c
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
Diffstat (limited to 'doc/README.fuse-io-uring')
-rw-r--r-- | doc/README.fuse-io-uring | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/README.fuse-io-uring b/doc/README.fuse-io-uring new file mode 100644 index 0000000..7207c6e --- /dev/null +++ b/doc/README.fuse-io-uring @@ -0,0 +1,38 @@ +fuse-over-io-uring uses io-uring for transport of kernel/userspace +messages. See also https://docs.kernel.org/filesystems/fuse-io-uring.html + +In order to enable it, the kernel module needs to have it enabled: +echo 1 > /sys/module/fuse/parameters/enable_uring + +Additionally, FUSE_CAP_OVER_IO_URING needs to be set and +se->uring.enable has to be true. The latter can be +achieved with the libfuse option '-oio_uring'. + +Default queue-depth is 8 and can be changed with the parameter +'-oio_uring_q_depth'. + +As of now there is always one queue per core. A reduced number +of cores in development. + +Benefits: +- Improved performance by using io_uring for kernel/userspace communication +- Reduced system call overhead compared to traditional FUSE +- Asynchronous I/O operations + +Usage: +To enable io_uring support when mounting a FUSE filesystem: +1. Enable kernel support: echo 1 > /sys/module/fuse/parameters/enable_uring +2. Mount with io_uring option: -oio_uring +3. Optionally adjust queue depth: -oio_uring_q_depth=<depth> + +Example: +./my_fuse_fs /source /mountpoint -oio_uring -oio_uring_q_depth=16 + +Requirements: +- Linux kernel with io_uring and FUSE io_uring support enabled +- libfuse compiled with io_uring support + +Build Dependencies: +- liburing (for io_uring support) +- libnuma (required alongside liburing) +- meson build system with option: -Denable-io-uring=true |