| ▲ | Cloudef 3 hours ago | |
Quite depends, I had times when my posix emulation of io_uring (with poll, not epoll) was faster than io_uring. For large zero-copy buffers, io_uring is king however. Also io_uring is useful even for non asynchronous IO as it can implement chain of operations as single atomic operation (mkdir + open it for example). For something like networking, if you are maximizing packets per second, you'll hit kernel limits[1] very quickly and instead have to start leveraging features like GSO/GRO or completely bypass the network stack. | ||
| ▲ | lukeh 2 hours ago | parent [-] | |
Also it’s nice for things like SPI which have no user space non-blocking API. | ||