Pull io_uring epoll support from Jens Axboe: "This adds support for reading epoll events via io_uring. While this may seem counter-intuitive (and/or productive), the reasoning here is that quite a few existing epoll event loops can easily do a partial conversion to a completion based model, but are still stuck with one (or few) event types that remain readiness based. For that case, they then need to add the io_uring fd to the epoll context, and continue to rely on epoll_wait(2) for waiting on events. This misses out on the finer grained waiting that io_uring can do, to reduce context switches and wait for multiple events in one batch reliably. With adding support for reaping epoll events via io_uring, the whole legacy readiness based event types can still be reaped via epoll, with the overall waiting in the loop be driven by io_uring" * tag 'for-6.15/io_uring-epoll-wait-20250325' of git://git.kernel.dk/linux: io_uring/epoll: add support for IORING_OP_EPOLL_WAIT io_uring/epoll: remove CONFIG_EPOLL guards
Showing the changes to include/uapi/linux (1 of 5 files). Show all
Unified · Split
| @@ -280,6 +280,7 @@ enum io_uring_op { · 279 unmodified lines | |||
| 280 | IORING_OP_BIND, | 280 | IORING_OP_BIND, |
| 281 | IORING_OP_LISTEN, | 281 | IORING_OP_LISTEN, |
| 282 | IORING_OP_RECV_ZC, | 282 | IORING_OP_RECV_ZC, |
| 283 | IORING_OP_EPOLL_WAIT, | ||
| 283 | 284 | ||
| 284 | /* this goes last, obviously */ | 285 | /* this goes last, obviously */ |
| 285 | IORING_OP_LAST, | 286 | IORING_OP_LAST, |