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.
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.
4 Comments