Nice File Performance Optimizations Coming With Linux 6.13
([Linux Storage] 3 Hours Ago
VFS File Pull)
- Reference: 0001507544
- News link: https://www.phoronix.com/news/VFS-File-Pull-Linux-6.13-Perf
- Source link:
In addition to the pull requests managed by Microsoft engineer Christian Brauner for [1]VFS untorn writes for atomic writes with XFS and EXT4, [2]Tmpfs case insensitive file/folder support , [3]new Rust file abstractions , and [4]the renewed multi-grain timestamps work , another interesting Linux 6.13 pull submitted by Brauner revolves around VFS file enhancements.
The VFS file updates for Linux 6.13 include a new reference counting mechanism for files, a new fast path, other new optimizations, and other clean-ups. Exciting me though always comes down to the performance improvements:
- Introduce a new reference counting mechanism for files.
...
This has been tested by various people and it gives consistent improvement up to 3-5% on workloads with loads of threads.
- Add a fastpath for find_next_zero_bit(). Skip 2-levels searching via find_next_zero_bit() when there is a free slot in the word that contains the next fd. This improves pts/blogbench-1.1.0 read by 8% and write by 4% on Intel ICX 160.
- Conditionally clear full_fds_bits since it's very likely that a bit in full_fds_bits has been cleared during __clear_open_fds(). This improves pts/blogbench-1.1.0 read up to 13%, and write up to 5% on Intel ICX 160.
Some nice performance gains, especially the latter two with the [5]BlogBench benchmark that in turn should be easily reproducible.
More details on the VFS file improvements via [6]this pull that has since been merged.
I look forward to beginning some Linux 6.13 kernel benchmarking as soon as the merge window settles down next week.
[1] https://www.phoronix.com/news/Linux-6.13-VFS-Untorn-Writes
[2] https://www.phoronix.com/news/Linux-6.13-Tmpfs-Case-Folding
[3] https://www.phoronix.com/news/Linux-6.13-Rust-File-Abstract
[4] https://www.phoronix.com/news/Linux-6.13-Multigrain-Timestamp
[5] https://openbenchmarking.org/test/pts/blogbench
[6] https://lore.kernel.org/lkml/20241115-vfs-file-f2297d7c58ee@brauner/
The VFS file updates for Linux 6.13 include a new reference counting mechanism for files, a new fast path, other new optimizations, and other clean-ups. Exciting me though always comes down to the performance improvements:
- Introduce a new reference counting mechanism for files.
...
This has been tested by various people and it gives consistent improvement up to 3-5% on workloads with loads of threads.
- Add a fastpath for find_next_zero_bit(). Skip 2-levels searching via find_next_zero_bit() when there is a free slot in the word that contains the next fd. This improves pts/blogbench-1.1.0 read by 8% and write by 4% on Intel ICX 160.
- Conditionally clear full_fds_bits since it's very likely that a bit in full_fds_bits has been cleared during __clear_open_fds(). This improves pts/blogbench-1.1.0 read up to 13%, and write up to 5% on Intel ICX 160.
Some nice performance gains, especially the latter two with the [5]BlogBench benchmark that in turn should be easily reproducible.
More details on the VFS file improvements via [6]this pull that has since been merged.
I look forward to beginning some Linux 6.13 kernel benchmarking as soon as the merge window settles down next week.
[1] https://www.phoronix.com/news/Linux-6.13-VFS-Untorn-Writes
[2] https://www.phoronix.com/news/Linux-6.13-Tmpfs-Case-Folding
[3] https://www.phoronix.com/news/Linux-6.13-Rust-File-Abstract
[4] https://www.phoronix.com/news/Linux-6.13-Multigrain-Timestamp
[5] https://openbenchmarking.org/test/pts/blogbench
[6] https://lore.kernel.org/lkml/20241115-vfs-file-f2297d7c58ee@brauner/
phoronix