Axboe: io_uring and networking in 2023

Post Syndicated from original https://lwn.net/Articles/923369/

Jens Axboe has posted a
detailed guide
to improving the performance of networking applications
with io_uring.

Network applications have been written with a readiness type of
model for decades, most commonly using epoll(2) these days to get
notified when a given socket has data available. While these
applications can be adapted to io_uring by swapping epoll notifiers
with io_uring notifiers, going down that path does not lead to an
outcome that fully takes advantage of what io_uring offers. It’ll
potentially provide a reduction of system calls compared to epoll,
but will not be able to take advantage of some of the other
features that io_uring offers. To do that, a change to the IO event
loop must be done.