High Performance NVMe Offloading in SPDK Using the New vfio-user Protocol
summary
SPDK implements an nvme-over-fabrics transport that uses shared memory rings for data and a vfio-user unix domain socket for control, added as a standalone transport plugin already checked into SPDK. MMIO from the guest is translated into fabrics property get/set commands and handled via a blocked thread and an internal admin queue created early to satisfy init ordering. Performance reaches about 725k IOPS for vfio-user emulation versus ~786k IOPS for vhost-like host block (≈84% vs 91% of raw SSD).
AI-written summary · about
chapters (8)
- 0:00Start
- 1:01Upcoming Talks
- 2:10Brief Background
- 4:26Approach
- 7:32Emulating an NVMe device
- 8:57Challenges
- 17:14Success!
- 21:36vfio-user NVMe efficiency
related talks
29mLarge-Scale Benchmark Results of NVMe Over Fabric Technology
25mPerformance Analysis of NVMe SSDs and their Implication on Real World Databases
40mLinux Storage System Bottleneck for eMMC/UFS
45mData Placement in Linux: Evolving Block and File I/O
27mPreview: Storage
43mThe Forefront of the Development for NVDIMM on Linux Kernel
26mReaping the performance of fast NVM storage with uDepot
52mHow ZNS SSD's Are Changing the Landscape
