~/talk

QEMU Emulated NVMe - Lessons Learned and Future Work

Talkat KVM Forum 2021 · 2021-09-15..09-16· [kubernetes]
links:none on file
slides:none on file

QEMU implements an emulated NVMe controller that now supports NVMe v1.4, multiple namespaces (added in 2020), metadata, and namespace sharing; the original device model attaches namespaces as child devices so removing a controller inadvertently unrealizes shared namespaces, a bug exposed around QEMU 6.0. The refactor builds subsystem and namespace entities as user-creatable objects (two namespace types plus a subsystem object), retains backward compatibility, and works functionally while aiming to reduce latency by replacing sglist/iovec duality and inlining DMA/PRP handling.

AI-written summary · about

  1. 0:00Intro
  2. 0:24NVMe in 1 Slide
  3. 1:24Emulated NVMe Timeline
  4. 3:46Speaking of APIs...
  5. 5:28A bit of history
  6. 6:43QDev Bus-based Plumbing
  7. 7:30NVMe Plumbing (pre-v6.0)
  8. 7:56Shared Namespaces
  9. 8:21Mistake: Just use -device
  10. 9:01NVMe Plumbing (v6.0)
  11. 10:03NVMe Plumbing (the "fix")
  12. 10:39How do we fix this properly?
  13. 13:04Rethinking the model
  14. 14:30The hw/nvme "devpocalypse"
  15. 17:40device VS -object
  16. 18:47Lesson Learned
  17. 19:52Future Work
~/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.