IO_uring Continues Advancing In 2022 With New Features For Pushing Linux I/O
IO_uring has already proven to be a tremendous success for storage asynchronous I/O, Microsoft has offered a similar I/O path with Windows 11, and IO_uring keeps on advancing in the mainline kernel and expanding to new areas like networking.
Some of the recent IO_uring work includes more optimizations, multi-shot accept, support for cancellations, cooperative completion scheduling, ring-provided buffers, managed direct descriptors, and other enhancements. Many of these new features have landed just recently for the Linux 5.19 merge window.
Outside of the kernel, liburing 2.2 is releasing soon as the IO_uring library that assists in making use of IO_uring across Linux kernel versions and platforms. The new liburing 2.2 release has various bug-fixes, optimizations, and other additions.
Jens Axboe of Meta speaking at Kernel Recipes 2022 around IO_uring innovations.
Among the features being worked on for IO_uring to be introduced in future kernel releases include support for true async buffered writes, more features around IO_uring for networking use-cases, incrementally-consumed provided buffers, level triggered poll support, io-wq offload support, and improved code organization.
The true async buffered writes should be ready for Linux 5.20 with at least XFS file-system support while Btrfs and others may take longer. On the networking front it should yield efficiency improvements and other enhancements.
Those wishing to learn more about the mid-2022 state of IO_uring can see the recorded Kernel Recipes 2022 livestream from today embedded below. Jens slides can be found on here (PDF).
There are also talks this week at Kernel Recipes 2022 on Ftrace, Idmapped mounts, KSPP, HID-BPF, Linux on RISC-V, and more. View the livestreams and more details at Kernel-Recipes.org.