Linux 5.20 To Support Async Buffered Writes For XFS + IO_uring For Big Performance Boost
The code set for introduction in the next kernel version enables async buffered writes when using both XFS and IO_uring. Meta's Stefan Roesch who led this work explained, "This patch series adds support for async buffered writes when using both xfs and io-uring. Currently io-uring only supports buffered writes in the slow path, by processing them in the io workers. With this patch series it is now possible to support buffered writes in the fast path. To be able to use the fast path the required pages must be in the page cache, the required locks in xfs can be granted immediately and no additional blocks need to be read form disk."
The performance results are promising for sequential writes with going from 77k to 209k IOPS, 314MB/s to 854MB/s bandwidth, and 9600ns to 120ns latency. These IO_uring numbers with XFS also put it now ahead of the performance of using libaio with XFS.
More details via this patch series.
Buffered writes to files on XFS is going to get a lot better for 5.20, queued up the series from Stefan:https://t.co/kMDhkD5VMl— Jens Axboe (@axboe) June 22, 2022
This brings XFS buffered writes on par with the buffered async read support that io_uring already offers.
IO_uring and block subsystem maintainer Jens Axboe also shared that support for other file-systems is also being worked on, with Btrfs expected to be the next candidate.