Btrfs Ready With More Performance Improvements For Linux 7.3: Some ~3x To ~5x Wins

David Sterba of SUSE sent in the Btrfs file-system feature updates today that target the Linux 7.3 merge window. Among other changes are more performance improvements for this next version of the Linux kernel.

Btrfs with Linux 7.3 is now using the IOmap bounce buffer for direct I/O rather than falling back to buffered I/O. The merge request notes that past correctness vs. speed trade-offs dropped performance to around 50% of the theoretical maximum while now it's up to around 95% that theoretical max. In other words, effectively doubled.

Btrfs also now replaced XArray with a local LRU list for tracking inhibited extent buffers, which can yield around 3x better performance. By removing an unnecessary one jiffy delay in the non-SSD mode with multiple logging tasks, latency has dropped while throughput increased by around 5x on a sample workload. Another 5x win is with the skip hope detection logic during full fsync for files without holes but lots of extents. Btrfs also has other performance improvements around locking and more.

Btrfs also now disables its free-space v1 code by default in favor of free-space v2 that has been the default for years. Plus there are a number of bug fixes and other code improvements.

More details on these many Btrfs file-system improvements to find with Linux 7.3 can be found via this pull request .