[LSF/MM/BPF TOPIC] Adding NVMeVirt to Kernel mainline

Jaehoon Shim jmattshim at gmail.com
Wed Feb 21 17:38:03 PST 2024


Hi all,

My research group has recently introduced NVMeVirt, a software-defined
virtual NVMe device implemented as a Linux kernel module. Upon
loading, NVMeVirt emulates an NVMe device that is recognized by the
host as a native PCIe device.
- https://github.com/snu-csl/nvmevirt
- https://www.usenix.org/system/files/fast23-kim.pdf

Advantages of NVMeVirt are:
- Deployable in real environments (not virtual)
- PCI peer-to-peer DMA support
- Low-latency device support
- Multiple namespace support (each namespace can support different command sets)
- Multiple device support
- Various command set support (currently supporting ZNS and KV)
- Accurate performance emulation

What if we can simplify NVMeVirt and add it to the Kernel mainline
just like the scsi_debug in the SCSI driver? This would offer an
accessible tool for developers, especially when NVMe devices with
specific spec are unavailable, to develop and debug the NVMe driver
functionalities.

Best regards,
Jaehoon



More information about the Linux-nvme mailing list