EXT4 Sees Some Performance Optimizations, Folio Conversion With Linux 6.4

While often times the EXT4 file-system driver updates for new Linux kernel merge windows can be rather mundane given the maturity of this widely-used Linux file-system, this time around for Linux 6.4 it's a bit more exciting.

On the performance front with Linux 6.4, a linked list for tracking extents that have been used for inode pre-allocation has been replaced by a red-black tree in the multi-block allocator. In turn this should improve the EXT4 performance for workloads with a large number of random allocating writes. Separately there has also been many clean-ups and fixes to the multi-block allocator code.

EXT4 with Linux 6.4 has also cleaned up its "data=journal" write-path that is now "significantly" cleaned-up and simplified. In the process a large number of data=journal special cases in the code were eliminated.


Matthew Wilcox meanwhile converted EXT4's code paths for reading/writing EXT4 pages to make use of the memory folios functionality.

More details on all of the EXT4 changes for Linux 6.4 via this pull request .