Btrfs Now Enables Large Folios By Default, Lands Huge Folios With Linux 7.2
The Btrfs file-system feature updates have been merged for the Linux 7.2 kernel with a few noteworthy changes for this copy-on-write file-system.
Back in Linux 6.17, Btrfs introduced experimental support for large folios as the ability to help out Btrfs performance by some single digit percentage improvements for real-world workloads. Now with Linux 7.2, Btrfs large folios support is no longer treated as experimental and thus enabled by default. This is great to see and will be interesting to measure its real-world impact now that it's no longer hidden as an experimental option.
Also for Linux 7.2, Btrfs is introducing huge folio support. For Linux 7.2 the huge folios up to 2M are treated as experimental.
The Btrfs updates for Linux 7.2 also include a new ioctl for returning raw checksums to user-space, such as for mkfs and deduplication optimizations. There is also now a stable UUId for use-cases such as OverlayFS, and a number of performance improvements.
Btrfs now limits the bio size in some cases to avoid possible latency spikes and a reported 15% improvement on sequential writes. Btrfs also does not force direct I/O to be serialized and can bring +60% of throughput. That direct I/O serialization issue was fallout from their mount API conversion. Btrfs also has an improvement that benefits performance for many memcg allocated objects.
Btrfs has also dropped 2K block size support, landed tree-checker improvements, and a variety of other improvements. The full list of Btrfs changes for Linux 7.2 can be found via this pull that has already been merged to Git master.
Back in Linux 6.17, Btrfs introduced experimental support for large folios as the ability to help out Btrfs performance by some single digit percentage improvements for real-world workloads. Now with Linux 7.2, Btrfs large folios support is no longer treated as experimental and thus enabled by default. This is great to see and will be interesting to measure its real-world impact now that it's no longer hidden as an experimental option.
Also for Linux 7.2, Btrfs is introducing huge folio support. For Linux 7.2 the huge folios up to 2M are treated as experimental.
The Btrfs updates for Linux 7.2 also include a new ioctl for returning raw checksums to user-space, such as for mkfs and deduplication optimizations. There is also now a stable UUId for use-cases such as OverlayFS, and a number of performance improvements.
Btrfs now limits the bio size in some cases to avoid possible latency spikes and a reported 15% improvement on sequential writes. Btrfs also does not force direct I/O to be serialized and can bring +60% of throughput. That direct I/O serialization issue was fallout from their mount API conversion. Btrfs also has an improvement that benefits performance for many memcg allocated objects.
Btrfs has also dropped 2K block size support, landed tree-checker improvements, and a variety of other improvements. The full list of Btrfs changes for Linux 7.2 can be found via this pull that has already been merged to Git master.
