In a combined filesystem and memory-management session at the 2025 Linux Storage, Filesystem, Memory Management, and BPF Summit (LSFMM+BPF), Joanne Koong led a discussion on improving the writeback performance for the Filesystem in Userspace (FUSE) layer. Writeback is how data that is written to the filesystem is actually flushed to the disk; it is the process of writing dirty pages from the page cache to storage. The current FUSE implementation allocates unmovable memory, then copies the dirty data to it before initiating writeback, which is slow; Koong wanted to change that behavior. Since the session, she has posted a patch set that has been applied by FUSE maintainer Miklos Szeredi.
在 2025 年的 Linux 存储、文件系统、内存管理与 BPF 峰会(LSFMM+BPF)上的一次文件系统与内存管理联合会议中,Joanne Koong 主持了一场关于改进用户态文件系统(FUSE)写回性能的讨论。写回是指将写入文件系统的数据最终刷写到磁盘的过程,即将页缓存中的脏页写入存储设备。当前 FUSE 的实现会分配不可移动内存,将脏数据复制到其中后再发起写回操作,这一过程较慢;Koong 希望改变这种行为。在会议之后,她发布了一个补丁集,已由 FUSE 维护者 Miklos Szeredi 合入。
Koong started the session with a description of the current FUSE writeback operation. A temporary page is allocated in the unmovable memory zone for each dirty page and the data is copied to the temporary page. After that, writeback is initiated on the temporary pages and the original pages can immediately have their writeback state cleared. That extra allocation and copying work is expensive, but is needed so that the pages do not move while the writeback operation is underway.
Koong 介绍了当前 FUSE 写回操作的流程:每个脏页都会在不可移动内存区域分配一个临时页,并将数据复制过去。之后,对这些临时页发起写回,而原始页的写回状态可以立即被清除。虽然这种额外的内存分配与数据复制开销较大,但它是为了在写回过程中防止页面移动所必须的。
Benchmarks have shown around 45% improvement in throughput for writes without the temporary pages, she said. Beyond that, elim