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

Jaehoon Shim jmattshim at gmail.com
Thu Feb 22 21:45:41 PST 2024


On Fri, 23 Feb 2024 at 00:56, Keith Busch <kbusch at kernel.org> wrote:
>
> On Thu, Feb 22, 2024 at 10:38:03AM +0900, Jaehoon Shim wrote:
> > 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
>
> It looks like your module creates a single nvme device. How are you
> testing P2P with just one device?

We have recently developed functionality for multi-device support,
which will soon be merged into the main branch of our GitHub
repository.
One possible way of making multiple nvme devices using current
NVMeVirt code is making two nvmevirt modules with different names and
loading them.

During our research, we have used GPUDirect Storage to test the P2P
capabilities between NVMeVirt and an actual NVIDIA GPU.



More information about the Linux-nvme mailing list