~/talk

Transport-level Testing of NVMe Devices using VFIO

links:none on file
slides:none on file

Demonstrates a user-space NVMe driver built with the VFIO user API against a QEMU emulated device, implementing the admin IDENTIFY command by mapping BAR0/BAR2, allocating IOVA pages with a simple IOVA allocator, writing 64‑byte SQ entries, ringing 32‑bit doorbells, and waiting on an eventfd for MSI/MSI‑X interrupts. Shows a working path for admin SQ/CQ, acknowledges completions, exercises the controller memory buffer, and surfaces a QEMU bug rejecting IOVA 0; full demo completes in under 45 minutes.

AI-written summary · about

  1. 0:00Intro
  2. 0:31Outline
  3. 1:11NVMe in N Slides
  4. 2:55Submission Queue Entry - 64 bytes
  5. 3:59Command Queue
  6. 5:43PCI Configuration Space
  7. 7:12NVMe Controller Registers (MBAR)
  8. 7:51Setting up the Admin Queues
  9. 8:26Queue Doorbells
  10. 9:21PCI Doorbells
  11. 10:59Completion Queue Entries - 16 bytes
  12. 13:04Polling for "phase" change
  13. 14:28Interrupts
  14. 15:14"Free'ing" Completion Queue Entries
  15. 16:35Low-level NVMe
  16. 19:09Putting the Theory into Practice
  17. 19:51How Low Can You Go?
  18. 20:12Virtual Function I/O Framework
  19. 21:22I/O Memory Management Unit
  20. 23:14VFIO is boiler-plate heavy
  21. 29:42libvfio-NVMe specific functionality
  22. 31:00Emulating this stuff
  23. 33:50VFIO-based NVMe Controller Initialization
  24. 34:56Identify Controller
  25. 36:08Submitting command and kicking the queue
  26. 36:50Wait for completion and ack
  27. 41:41The Controller Memory Buffer
  28. 47:33Rounding up
~/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.