Add support for a polled io_uring instance. When a read or write is submitted to a polled io_uring, the application must poll for completions on the CQ ring through io_uring_enter(2). Polled IO may not generate IRQ completions, hence they need to be actively found by the application itself. To use polling, io_uring_setup() must be used with the IORING_SETUP_IOPOLL flag being set. It is illegal to mix and match polled and non-polled IO on an io_uring.
Showing the changes to include/uapi/linux (1 of 2 files). Show all
Unified · Split
| @@ -30,6 +30,11 @@ struct io_uring_sqe { · 29 unmodified lines | ||
| 30 | 30 | __u64 __pad2[3]; |
| 31 | 31 | }; |
| 32 | 32 | |
| 33 | +/* | |
| 34 | + * io_uring_setup() flags | |
| 35 | + */ | |
| 36 | +#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */ | |
| 37 | + | |
| 33 | 38 | #define IORING_OP_NOP 0 |
| 34 | 39 | #define IORING_OP_READV 1 |
| 35 | 40 | #define IORING_OP_WRITEV 2 |