Linux 7.3 Adds RWF_DONTCACHE Support For Block Devices

Linux 7.3 Adds RWF_DONTCACHE Support For Block Devices

With the never-ending quest for greater I/O performance in the HPC space and the demands all the more relentless in the AI era, the Linux kernel block subsystem activity continues to be as vibrant as ever along with the ongoing innovations in the IO_uring space. Merged a few days back were all the block and IO_uring feature changes for Linux 7.3. The IO_uring changes are mainly focused around enhancing zero-copy receive "ZCRX", including taking on dynamic area provisioning. There are also various bug fixes and other enhancements. The dynamic area provisioning allows for the memory areas to be allocated and provisioned on-demand rather than needing to be pre-allocated statically. Interesting over on the block side for Linux 7.3 is RWF_DONTCACHE support for block devices. The RWF_DONTCACHE flag is used for uncached buffered I/O via pruning pages from the page cache as soon as the operation completes. Thus relieving pressure from the cache and can help with heavy I/O workloads. With Linux 7.3, RWF_DONTCACHE is now supported on block devices. RWF_DONTCACHE for block devices should be useful for databases running off raw block devices and other user-space allocations interacting directly with the underlying block device. Tests carried out by Tal Zussman who enabled the RWF_DONTCACHE support for block devices showed very nice read and write benefits from testing on a single block device on a VM: Other block changes for Linux 7.3 include Clang context analysis support for the NVMe host driver parallelizing NVMe RDMA I/O queue allocation and start-up, Apple NVMe fixes, and various MD RAID enhancements. All the block feature improvements for Linux 7.3 can be found via this merge.

Original Source

Read the full article at Phoronix →

KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.