On Dec 19 16:11, Michal Prívozník wrote: > On 12/19/19 2:09 PM, Klaus Jensen wrote: > > This adds support for multiple namespaces by introducing a new 'nvme-ns' > > device model. The nvme device creates a bus named from the device name > > ('id'). The nvme-ns devices then connect to this and registers > > themselves with the nvme device. > > > > This changes how an nvme device is created. Example with two namespaces: > > > > -drive file=nvme0n1.img,if=none,id=disk1 > > -drive file=nvme0n2.img,if=none,id=disk2 > > -device nvme,serial=deadbeef,id=nvme0 > > -device nvme-ns,drive=disk1,bus=nvme0,nsid=1 > > -device nvme-ns,drive=disk2,bus=nvme0,nsid=2 > > > > The drive property is kept on the nvme device to keep the change > > backward compatible, but the property is now optional. Specifying a > > drive for the nvme device will always create the namespace with nsid 1. > > > > Signed-off-by: Klaus Jensen <klaus.jen...@cnexlabs.com> > > Signed-off-by: Klaus Jensen <k.jen...@samsung.com> > > Klaus, just to make sure I understand correctly, this implements > multiple namespaces for *emulated* NVMe, right? I'm asking because I > just merged libvirt patches to support: > > -drive > file.driver=nvme,file.device=0000:01:00.0,file.namespace=1,format=raw,if=none,id=drive-virtio-disk0 > -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 > > and seeing these patches made me doubt my design. But if your patches > touch emulated NVMe only, then libvirt's fine because it doesn't expose > that just yet. > > Michal >
Hi Michal, Yes, this is only for the emulated nvme controller.