Enabling Large Block Size devices in Linux
summary
Adds a page-cache API to encode a folio minimum order so filesystems can request folios at least as large as their block size, implements XFS changes and iomap/folio alignment, and exercises it with fio + NVMe tracing and FSSTests. 90% of plumbing reuses folio/multi-index work, tests run ~25 FSSTest loops (443 flaky items tracked) and show xfs 64k tests emit no sub‑block data writes while truncate and iomap corner cases required fixes. Block-device cache, buffer_head compat and full LBA format flips remain to finish.
AI-written summary · about
chapters (19)
- 0:00Introduction and agenda
- 1:13Background and history of LBS
- 3:25Use cases for large block sizes
- 9:47When LBS is suitable and limitations
- 10:09Plumbing and implementation overview
- 13:00Folios and page cache changes
- 14:24XFS support for large folios
- 18:21Implementation details and API
- 21:54Truncate and folio handling
- 23:37Testing with FIO and IO distribution
- 28:16Benchmarking and performance
- 32:14Device matrix and testing considerations
- 36:50XFS testing profiles and setup
- 38:38Baseline testing results
- 40:00LBS testing results and regressions
- 42:08Next steps and future work
- 43:31Memory fragmentation and compaction
- 44:15Community and collaboration
- 44:57Q&A
related talks
37mLarge Block I/O for Linux
45mData Placement in Linux: Evolving Block and File I/O
42mProduction FS: Adapt or Die
50mOverview of the Linux Storage Stack
40mLinux Storage System Bottleneck for eMMC/UFS
30mHybrid XFS: Idea to Exabytes in 12 Months
41mFinding the Best Block Filesystem for Your Embedded Linux System
43mThe Forefront of the Development for NVDIMM on Linux Kernel
