[SPDK] Re: Using cmb_copy in QEMU environment

Liu, Changpeng <changpeng.liu at intel.com>
Newsgroups dev.linux.lists.spdk
Message-ID <BN7PR11MB2739C8123B31D700D50220C8EED40@BN7PR11MB2739.namprd11.prod.outlook.com>
Hi Archie,

Thanks for reporting, could you submit a github issue? Thanks.

I used the latest SPDK code with the submission queue in the CMB, it also got failure with CMB, I will take a look for the issue.


> -----Original Message-----
> From: archiemorningstar88(a)gmail.com <archiemorningstar88(a)gmail.com>
> Sent: Sunday, April 19, 2020 4:58 AM
> To: spdk(a)lists.01.org
> Subject: [SPDK] Using cmb_copy in QEMU environment
> 
> Hi,
> 
> I've been trying to get cmb_copy (examples/nvme/cmb_copy) to work using an
> emulated SSD with CMB in a QEMU environment, but cmb_copy cannot allocate
> a CMB buffer. The identify (examples/nvme/identify) reports the two emulated
> SSD's I created have 128MB of CMB. I'm running QEMU v4.2.0 with the guest OS
> Ubuntu 18.04. I've also tried various revisions of SPDK (20.01.1, 19.10.1, 19.04.1,
> 18.04.1) with similar results.
> 
> I see these two errors print out which I believe couldn't register the memory so
> the call to spdk_nvme_ctrlr_alloc_cmb_io_buffer() fails (pctrlr-
> >cmb_bar_virt_addr is NULL):
> could not get phys addr for 0x1088200000
> nvme_pcie.c: 554:nvme_pcie_ctrlr_map_cmb: *ERROR*: spdk_mem_register()
> failed
> 
> I tried to trace the code and see that when it searches for the physical address
> g_vtophys_pci_devices list is empty when trying to register the CMB memory
> space. It only gets later populated with the two SSDs when cleanup_pci_devices()
> is called at the end of spdk_pci_device_attach().
> 
> My qemu startup:
> x86_64-softmmu/qemu-system-x86_64 \
> -cpu host \
> -machine q35,accel=kvm,kernel-irqchip=split \
> -smp 8 \
> -m 32768 \
> -enable-kvm \
> -drive if=virtio,file=test1.qcow2,cache=none \
> -vnc :1 \
> -device e1000,netdev=net0 \
> -netdev user,id=net0,hostfwd=tcp::5555-:22 \
> -drive file=nvme0.img,if=none,id=D22,format=raw \
> -device nvme,drive=D22,serial=1234,cmb_size_mb=128 \
> -drive file=nvme1.img,if=none,id=D23,format=raw \
> -device nvme,drive=D23,serial=5678,cmb_size_mb=128 \
> -device intel-iommu,intremap=on \
> 
> If anyone has any suggestions it would be greatly appreciated.
> 
> Archie
> _______________________________________________
> SPDK mailing list -- spdk(a)lists.01.org
> To unsubscribe send an email to spdk-leave(a)lists.01.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.