Linux I/O expert and storage expert Jens Axboe of Meta is hoping to have the uncached buffered I/O support squared away for Linux 6.14 — a feature that’s been a half-decade in the making.
Recently Jens Axboe took to renewing work on uncached buffered I/O fpr big speed improvements. Axboe was aiming to address a “throughput cliff” that can occur for performance once the page cache is filled. The new implementation of this uncached buffered I/O “RWF_UNCACHED” is simpler and cleaner while being “up to 65-75% improvement” for performance and bypassing unpredictability issues with the page cache.
Recent weeks have seen Axboe continuing to iterate on this code and extending the support to more file-systems. It’s now looking like the uncached buffered I/O support will be ready for the upcoming Linux 6.14 cycle.
Jens Axboe posted this week on X:
“Posted v8 of the uncached buffered IO patchset. This should be fine for merging at this point, let’s hope we can make the 6.14 kernel release.”
The v8 patches rename some functions, acknowledge additional code reviews, and other minor changes in preparation for landing the code. The file-system patches have also been separated in their own code branch that will depend upon the core branch first being merged. Plus the patches have been updated against the current Linux Git development state.
As Axboe notes in the patch cover letter:
“tldr being that I see about a 65% improvement in performance for both, with fully predictable IO times. CPU reduction is substantial as well, with no kswapd activity at all for reclaim when using uncached IO.
Using it from applications is trivial – just set RWF_DONTCACHE for the read or write, using pwritev2(2) or preadv2(2). For io_uring, same thing, just set RWF_DONTCACHE in sqe->rw_flags for a buffered read/write operation. And that’s it.”
Here’s to hoping the uncached buffered I/O code indeed makes it into Linux 6.14 with its exciting gains.