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
200200 */
201201 #define IORING_SETUP_NO_SQARRAY (1U << 16)
202202
203+/* Use hybrid poll in iopoll process */
204+#define IORING_SETUP_HYBRID_IOPOLL (1U << 17)
205+
203206 enum io_uring_op {
204207 IORING_OP_NOP,
205208 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