Overview
Explore NVMe emulation performance optimization techniques in this 21-minute conference talk. Learn about QEMU's NVMe emulation challenges and solutions, including shadow doorbell buffer support, ioeventfd mechanism, iothread utilization, and doorbell memory polling. Discover how these optimizations led to an 11x performance improvement, increasing from 30 KIOPS to 330 KIOPS. Gain insights into the implementation process, challenges faced, and lessons learned. Understand the impact of NVMe spec violations and their fixes. Ideal for developers interested in applying these techniques to their subsystems and improving emulation performance.
Syllabus
Intro
QEMU NVMe - Current Status
NVMe Primer
Shadow Doorbell Buffer
Performance After Shadow DB
Thread-safe IRQ Delivery
Performance After irqfd
Polling
Lessons Learned
A Wild NVMe Spec Violation Appeared
The "fix" (Keith Busch)
Patches
Taught by
Linux Foundation