Block Layer Rust API
summary
Project delivers a Rust block-layer API plus a Rust NVMe driver (PCI transport only) and a null_blk driver (210 lines, memory-backed), with a long list of Rust kernel abstractions rebased per kernel release for device, PCI, IRQ, mmio, timers and radix trees. Benchmarks show the Rust NVMe driver runs ~5–6% slower at small queue depth and ~1–2% faster at QD16 (statistically significant, 30 samples); null_blk sits within ~2% worse to ~10% better across IO sizes (40 samples). Full LTO breaks boot so only modules are LTOed. NVMe faces an upstream rejection; null_blk may be acceptable.
AI-written summary · about
chapters (9)
- 0:00Introduction and setup
- 1:03Project goals and motivation
- 4:09Block layer abstractions overview
- 8:44Null block driver status
- 11:37NVMe driver benchmarks
- 14:28Null block performance results
- 17:37Contributing opportunities
- 19:19Timer API demonstration
- 22:55Q&A and closing remarks
related talks
24mLinux Rust NVMe Driver Status Update
33mMoving kernel swapping infrastructure to Rust
50mRusty Swapping: Rewriting a zswap Backend in Rust
30mQEMU-Storage-Daemon and libblkio: Exploring New Shores for the QE...
39mRusty Swapping: Rewriting a Zswap Backend in Rust
39mRusty Swapping: Rewriting a Zswap Backend in Rust
51mRust in the Linux kernel
35mRust for Linux Office Hours
