FUSE Getting Another Performance Boost In Linux 4.20~5.0

Written by Michael Larabel in Linux Storage on 27 September 2018 at 06:49 AM EDT. Add A Comment
LINUX STORAGE
Separate from the recent FUSE performance work talked about for making FUSE faster with the eBPF in-kernel JIT that hasn't been staged for mainlined, "File-Systems in User-Space" are set to see better performance on the next kernel (Linux 4.20~5.0) thanks to other changes.

Already having been queued for this next kernel cycle is copy_file_range support for FUSE to yield more efficient copy operations.

And now is at least one other performance optimization queued for this kernel cycle that will kick off in October. Merged on Tuesday to the FUSE "for-next" tree is this patch:
fuse: Use hash table to link processing request
We noticed the performance bottleneck in FUSE running our Virtuozzo storage over rdma. On some types of workload we observe 20% of times spent in request_find() in profiler. This function is iterating over long requests list, and it scales bad.

The patch introduces hash table to reduce the number of iterations, we do in this function. Hash generating algorithm is taken from hash_add() function, while 256 lines table is used to store pending requests. This fixes problem and improves the performance.

This improvement comes thanks to the engineers at software provider Virtuozzo.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week