Linux Rust NVMe Driver Status Update
summary
A Rust NVMe driver for PCI devices is implemented and benchmarked with fio in QEMU/KVM on a 16‑core EPYC testbed against the Linux C driver using SN840 and P5800 devices. Performance lands within single-digit percent of the C driver for single‑core IRQ and polled paths, scales linearly when adding cores, and shows a ~2.6% C advantage with three drives; the Rust build exhibits ~60 extra L3 misses and larger text size. The driver is functional but not production ready (teardown, removal, nvmecli, and some unsafe code remain).
AI-written summary · about
chapters (11)
- 0:00Introduction and motivation
- 1:27NVMe driver basics and Rust target
- 3:11Kernel integration and abstractions
- 8:06Driver implementation walkthrough
- 9:07Benchmark setup and results
- 13:25Multi-drive scaling performance
- 14:53Performance analysis and optimizations
- 17:21Future work and community feedback
- 19:08Call for contributions
- 20:10Async programming model exploration
- 23:19Summary and conclusion
related talks
25mBlock Layer Rust API
27mUsing Rust in the binder driver
20mAn Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise
10mKeynote: Rust in the Linux Kernel: A New Era for Cloud Native Performance and Security
39mFrom C to Rust: Bringing Rust Abstractions to Embedded Linux
33mMoving kernel swapping infrastructure to Rust
39mTyr: A New Rust GPU Driver for the Linux Kernel
46mRust for Linux
