Linux Kernel & OS

Linux 7.4 adds optional EXT4 buffered IOmap for large write performance gains

Key Takeaway

EXT4 in Linux 7.4 introduces an opt-in buffered_iomap mount option that replaces buffer head usage with the IOmap framework, delivering substantial throughput improvements for large writes while automatically falling back to legacy paths for unsupported configurations.

Summary

The EXT4 file-system changes for Linux 7.4 include optional buffered IOmap support as the headline feature, developed by Zhang Yi at Huawei and merged by maintainer Ted Ts'o. This new capability replaces the file-system driver's traditional buffer head mechanism with the more modern IOmap framework, which has demonstrated significant performance improvements specifically for large write operations. Read performance sees more modest gains. Because the implementation lacks support for several EXT4 features including online defragmentation, inline data, fsverify, fscrypt, non-extent inodes, and data=journal mode, it is disabled by default and must be explicitly enabled via the buffered_iomap mount option. The driver automatically falls back to the original I/O code path when encountering incompatible configurations, ensuring functional safety.

Beyond the IOmap work, the merge includes miscellaneous bug fixes targeting fast commit reliability and eliminating deadlocks and out-of-bound reads triggered by corrupted file-system corner cases. These changes are now in the Linux 7.4 merge window and will reach distributions following the kernel's release cycle.

What changes in EXT4 for Linux 7.4

  • Buffered IOmap framework: Replaces the legacy buffer head-based I/O path in EXT4 with the IOmap framework, which provides more efficient mapping of file offsets to physical blocks for buffered operations.
  • Opt-in mount option: The buffered_iomap feature is controlled by a new mount flag and is disabled by default due to incompatibilities with specific EXT4 functionality.
  • Automatic fallback: When buffered_iomap is enabled, EXT4 detects unsupported configurations and transparently reverts to the original I/O code path rather than failing or producing incorrect behavior.
  • Known limitations: The new path does not support online defragmentation, inline data, fsverify, fscrypt, non-extent inodes, or data=journal mode, restricting deployment to specific workloads.
  • Bug fixes: The merge includes corrections for fast commit behavior and resolves deadlock and out-of-bound read vulnerabilities when handling corrupted file-system states.

Why it matters

For Linux distributions and storage administrators running EXT4 on data-intensive workloads such as databases, media processing, or build farms, the buffered_iomap option offers a tangible path to higher write throughput without migrating to alternative file systems. The automatic fallback mechanism reduces operational risk when enabling the feature, though administrators must verify their workload does not depend on the excluded capabilities. Once Linux 7.4 reaches stable distribution releases, this change could shift performance benchmarking conversations around EXT4 versus XFS and Btrfs for large-file workloads.

What to do

  • Users of EXT4 file-system who want to take advantage of large write performance gains can enable the buffered_iomap mount option when upgrading to Linux 7.4
  • EXT4 users with workloads that rely on online defragmentation, inline data, fsverify, fscrypt, non-extent inodes, or data=journal mode should be aware that these features are not supported with buffered_iomap
  • When moving to Linux 7.4, users can look for the buffered_iomap mount option to potentially improve large write performance while automatically falling back to legacy paths for unsupported configurations

Original reference: www.phoronix.com →