VOOZH about

URL: https://www.phoronix.com/news/Linux-6.16-Btrfs-Performance

⇱ Btrfs To See More Performance Improvements With Linux 6.16 - Phoronix


👁 Phoronix

Btrfs To See More Performance Improvements With Linux 6.16

Written by Michael Larabel in Linux Storage on 25 May 2025 at 08:44 AM EDT. 60 Comments
Ahead of the Linux 6.16 merge window opening, several early pull requests were already sent out this week in advance of Linux 6.15 expected for release later today. Among those early feature pulls was Btrfs maintainer David Sterba sending out updates to this advanced copy-on-write file-system.

With Btrfs for Linux 6.16 the most interesting aspect are continued performance improvements. There is some extent buffer conversion work yielding some throughput and runtime improvements for metadata heavy operations. Plus some other clean-ups leading to some nice gains and other efficiency work. The Btrfs performance work for Linux 6.16 includes:
"- extent buffer conversion to xarray gains throughput and runtime improvements on metadata heavy operations doing writeback (sample test shows +50% throughput, -33% runtime)

- extent io tree cleanups lead to performance improvements by avoiding unnecessary searches or repeated searches

- more efficient extent unpinning when committing transaction (estimated run time improvement 3-5%)"

There is also a variety of other smaller changes to find with this Btrfs update too:
"User visible changes:

- remove standalone mount option 'nologreplay', deprecated in 5.9, replacement is 'rescue=nologreplay'

- in scrub, update reporting, add back device stats message after detected errors (accidentally removed during recent refactoring)

Core:

- convert extent buffer radix tree to xarray

- in subpage mode, move block perfect compression out of experimental build

- in zoned mode, introduce sub block groups to allow managing special block groups, like the one for relocation or tree-log, to handle some corner cases of ENOSPC

- in scrub, simplify bitmaps for block tracking status

- continued preparations for large folios
- remove assertions for folio order 0
- add support where missing: compression, buffered write, defrag, hole punching, subpage, send

- fix fsync of files with no hard links not persisting deletion

- reject tree blocks which are not nodesize aligned, a precaution from 4.9 times

- move transaction abort calls closer to the error sites

- remove usage of some struct bio_vec internals

- simplifications in extent map

- extent IO cleanups and optimizations

- error handling improvements

- enhanced ASSERT() macro with optional format strings"

More details for those interested via this pull request.

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.