VFS+XFS Changes Land In Linux 6.12 To Support Block Sizes Larger Than Page Size

Written by Michael Larabel in Linux Kernel on 21 September 2024 at 06:42 AM EDT. 16 Comments
LINUX KERNEL
Linux 6.12 yesterday merged the real-time "PREEMPT_RT" patches that had been in development for two decades. Today another big hitting feature was merged for Linux 6.12 that's been in development nearly as long.

Linus Torvalds has merged VFS block size code changes for enabling block sizes larger than the system page size. This work has been ongoing over the past 16 years and with Linux 6.12 is finally being mainlined to make this next kernel all the more exciting.

With this code for Linux 6.12, the VFS infrastructure for allowing a block size larger than the page size is merged as well as enabling that support for the XFS file-system.

Microsoft engineer Christian Brauner explained in the pull request:
"This contains the vfs infrastructure as well as the xfs bits to enable support for block sizes (bs) larger than page sizes (ps) plus a few fixes to related infrastructure.

There has been efforts over the last 16 years to enable enable Large Block Sizes (LBS), that is block sizes in filesystems where bs > page size. Through these efforts we have learned that one of the main blockers to supporting bs > ps in filesystems has been a way to allocate pages that are at least the filesystem block size on the page cache where bs > ps.

Thanks to various previous efforts it is possible to support bs > ps in XFS with only a few changes in XFS itself. Most changes are to the page cache to support minimum order folio support for the target block size on the filesystem.

A motivation for Large Block Sizes today is to support high-capacity (large amount of Terabytes) QLC SSDs where the internal Indirection Unit (IU) are typically greater than 4k to help reduce DRAM and so in turn cost and space. In practice this then allows different architectures to use a base page size of 4k while still enabling support for block sizes aligned to the larger IUs by relying on high order folios on the page cache when needed.

It also allows to take advantage of the drive's support for atomics larger than 4k with buffered IO support in Linux. As described this year at LSFMM, supporting large atomics greater than 4k enables databases to remove the need to rely on their own journaling, so they can disable double buffered writes, which is a feature different cloud providers are already enabling through custom storage solutions"

As mentioned one of the immediate benefits is for very large capacity QLC SSDs as well as for atomics larger than 4K with buffered I/O. Hopefully other file-systems end up seeing similar support now that the VFS infrastructure work is complete and the XFS code as a nice implementation example.

NVMe SSDs


This code is merged for Linux 6.12. Linux 6.12 is looking pretty darn exciting and slated to be this year's Long Term Support kernel version.
Related News
About The Author
Michael Larabel

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.

Popular News This Week