~/talk

NVMe Emulation Performance Optimization

links:none on file
links:none on file
slides:none on file

QEMU NVMe emulation moves from ~30 KIOPS to ~330 KIOPS by implementing shadow doorbell buffers, using ioeventfd to avoid full VM exits, adding a dedicated IO thread with eventfd/irqfd-based interrupt delivery, and optional submission-queue polling; about 700 lines change yield an 11x improvement. Admin commands remain on the main loop for safety, shadow-doorbell quirks require a MMIO fallback, polling cuts latency but can reduce IOPS at high queue depth, and some patches are already in QEMU 7.1 while others are under review.

AI-written summary · about

  1. 0:00Intro
  2. 1:12QEMU NVMe - Current Status
  3. 3:03NVMe Primer
  4. 6:02Shadow Doorbell Buffer
  5. 6:56Performance After Shadow DB
  6. 10:09Thread-safe IRQ Delivery
  7. 11:32Performance After irqfd
  8. 13:18Polling
  9. 15:04Lessons Learned
  10. 17:12A Wild NVMe Spec Violation Appeared
  11. 18:28The "fix" (Keith Busch)
  12. 20:36Patches
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.