FUSE Passthrough Mode Merged For Linux 6.9
The FUSE passthrough mode that's been years in the making for better performance was merged upstream today for the in-development Linux 6.9 kernel!
Last month I wrote that FUSE passthrough might land for Linux 6.9 after noticing the patches finally appear in FUSE.git's "for-next" branch. This feature was indeed sent in as part of the FUSE updates for Linux 6.9 and today Linus Torvalds merged it upstream.
The FUSE passthrough mode allows for improved performance with user-space file-systems by avoiding the daemon overhead on a per-file basis whereby read/write operations are forwarded by the kernel directly to the lower file-system. The support depends on the new FUSE_PASSTHROUGH Kconfig switch for allowing this bypassing of the FUSE server via mapping specific FUSE operations to be performed directly on the backing file. As shown in last month's article, benchmarks on earlier versions of the FUSE passthrough mode has shown it performing much closer to the native I/O performance than with the existing FUSE implementation:
The FUSE merge for Linux 6.9 sums up the feature as:
FUSE for Linux 6.9 also fixes up an interaction issue in direct I/O mode with memory maps, exposes file-system tags through sysfs for VirtIOFS, and various other fixes.
Last month I wrote that FUSE passthrough might land for Linux 6.9 after noticing the patches finally appear in FUSE.git's "for-next" branch. This feature was indeed sent in as part of the FUSE updates for Linux 6.9 and today Linus Torvalds merged it upstream.
The FUSE passthrough mode allows for improved performance with user-space file-systems by avoiding the daemon overhead on a per-file basis whereby read/write operations are forwarded by the kernel directly to the lower file-system. The support depends on the new FUSE_PASSTHROUGH Kconfig switch for allowing this bypassing of the FUSE server via mapping specific FUSE operations to be performed directly on the backing file. As shown in last month's article, benchmarks on earlier versions of the FUSE passthrough mode has shown it performing much closer to the native I/O performance than with the existing FUSE implementation:
The FUSE merge for Linux 6.9 sums up the feature as:
Add passthrough mode for regular file I/O.
This allows performing read and write (also via memory maps) on a backing file without incurring the overhead of roundtrips to userspace. For now this is only allowed to privileged servers, but this limitation will go away in the future
FUSE for Linux 6.9 also fixes up an interaction issue in direct I/O mode with memory maps, exposes file-system tags through sysfs for VirtIOFS, and various other fixes.
15 Comments