I/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux
summary
Upstream Linux receives an NVMe char interface plus an io_uring command path that adds big SQE/big CQE to avoid ioctl copies, enable non‑root access, and decouple submission from completion. Benchmarks show FIO peak IOPS 16–40% higher than the block path (examples: 5M–8.3M IOPS for passthru vs 4.4M–7.9M for block, SPDK hits ~10M). Integration into Cachelib demonstrates practical data‑placement control that keeps write amplification near 1, and liburing/xNV/SPDK tools are updated to use the path.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 0:28Why we created IO Passthru
- 5:20IO Passthru Upstream
- 12:06Kernel Upstream
- 12:58Performance Evolution
- 16:59Summary
related talks
46mRevamping ioctl with io_uring
45mData Placement in Linux: Evolving Block and File I/O
24mOptimizing Storage Performance for 4–5 Million IOPs
50mOptimizing for NVMe Drives: The 10 Microsecond Challenge
17mHow advancements in storage are triggering innovations in open-source and vice-versa
42mUnderstanding the Linux Block Layer-From Single Queue to Multi-Queue Architecture
20mvFPIO: A Virtual I/O Abstraction for FPGA-accelerated I/O Devices
14mAdvancing Data Integrity in Linux
