IO_uring Squeezes More Performance With Linux 5.13
The IO_uring updates for Linux 5.13 include support for multi-shot mode for POLL requests, more efficient reference counting, no longer the need to have a manager thread for each ring, and a wide variety of smaller technical fixes and improvements.
While no super exciting features this cycle for IO_uring, the changes overall seem to amount to a few percentage performance improvements. Linux block maintainer and IO_uring lead developer Jens Axboe of Facebook noted that he's seeing around 5% better performance with this new code in Linux 5.13.
Since the 5.13 io_uring bits have been merged upstream, I ran my favorite (and usual) peak performance test. Looks like 5.13 will be about 5% faster / more efficient than 5.12, 2.83M IOPS vs 3.00M for 5.13.
— Jens Axboe (@axboe) April 29, 2021
Just a bunch of little improvements, it all adds up in the end.
While 5% may not seem too exciting, it's commendable considering how fast IO_uring already is and how well it has been panning out performance and feature wise on prior kernels. So seeing small gains will certainly continue adding up adding up for this asynchronous I/O framework. It was just this past cycle for Linux 5.12 where it enjoyed a ~10% performance boost.