Revamping ioctl with io_uring
summary
A new io_uring command lands in kernel 5.19 and exposes a pass‑through style equivalent of asynchronous ioctl that uses big_sqe/big_cqe to place commands directly in the SQE and avoid copies, kernel-facing callbacks (io_uring_cmd / io_uring_cmd_done / io_uring_cmd_complete_in_task) for nonblocking submission/completion, and knobs like registered buffers and io_poll. NVMe and ublk already adopt it; combining fixed buffers and polling reaches about 5 million IOPS (roughly 11% peak gain over baseline in the demo).
AI-written summary · about
chapters (8)
- 0:00Start
- 0:41User-Kernel Communication
- 4:46Recap: io_uring basics
- 8:21Async dispatch models
- 11:13lo_uring command
- 15:51Uring-cmd: async dispatch
- 25:15Example: efficiency
- 27:10Upstream status
related talks
19mI/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux
34mio_uring in the Automotive World
19mExperiences With Integration of Io_uring Into gRPC-C++
17mHow advancements in storage are triggering innovations in open-source and vice-versa
06mZero-copy Transfers with io_uring and Rust
01h 04mAsynchronous I/O and Coroutines for Smooth Data Streaming
45mJourney to the end of Linux IO APIs (from poll to io_uring)
51mJourney to the End of Linux IO APIs (d…)
