History

io_uring: add support for hybrid IOPOLL

A new hybrid poll is implemented on the io_uring layer. Once an IO is issued, it will not poll immediately, but rather block first and re-run before IO complete, then poll to reap IO. While this poll method could be a suboptimal solution when running on a single thread, it offers performance lower than regular polling but higher than IRQ, and CPU utilization is also lower than polling. To use hybrid polling, the ring must be setup with both the IORING_SETUP_IOPOLL and IORING_SETUP_HYBRID)IOPOLL flags set. Hybrid polling has the same restrictions as IOPOLL, in that commands must explicitly support it.

hexue committed 2 years ago

Commit 01ee1941 parent c1329534 files · +108 −14Browse files

Showing the changes to include/uapi (1 of 4 files). Show all

Unified · Split

include/uapi/linux/io_uring.h+3−0
@@ -200,6 +200,9 @@ enum io_uring_sqe_flags_bit { · 199 unmodified lines
200 */200 */
201#define IORING_SETUP_NO_SQARRAY (1U << 16)201#define IORING_SETUP_NO_SQARRAY (1U << 16)
202 202
203/* Use hybrid poll in iopoll process */
204#define IORING_SETUP_HYBRID_IOPOLL (1U << 17)
205
203enum io_uring_op {206enum io_uring_op {
204 IORING_OP_NOP,207 IORING_OP_NOP,
205 IORING_OP_READV,208 IORING_OP_READV,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t