Hi, Thank you for your reply.
On Monday, April 15, 2024 2:27:36 PM IST Eugenio Perez Martin wrote: > [...] > > I have one question though. One of the options (use case 1 in [1]) > > > > given to the "qemu-kvm" command is: > > > -device virtio-net-pci,netdev=vhost-vdpa0,bus=pcie.0,addr=0x7\ > > > ,disable-modern=off,page-per-vq=on > > > > This gives an error: > > > Bus "pcie.0" not found > > > > Does pcie refer to PCI Express? Changing this to pci.0 works. > > Yes, you don't need to mess with pcie stuff so this solution is > totally valid. I think we need to change that part in the tutorial. > Understood. > > I read through the "device buses" section in QEMU's user > > documentation [5], but I have still not understood this. > > > > "ls /sys/bus/pci/devices/* | grep vdpa" does not give any results. > > Replacing pci with pci_express doesn't give any results either. How > > does one know which pci bus the vdpa device is connected to? > > I have gone through the "vDPA bus drivers" section of the "vDPA > > kernel framework" article [6] but I haven't managed to find an > > answer yet. Am I missing something here? > > You cannot see the vDPA device from the guest. From the guest POV is a > regular virtio over PCI bus. > > From the host, vdpa_sim is not a PCI device either, so you cannot see > under /sys/bus. Do you have a vdpa* entry under > /sys/bus/vdpa/devices/? > After re-reading the linked articles, I think I have got some more clarity. One confusion was related to the difference between vdpa and vhost-vdpa. So far what I have understood is that L0 acts as the host and L1 acts as the guest in this setup. I understand that the guest can't see the vDPA device. I now also understand that vdpa_sim is not a PCI device. I am also under the impression that vdpa refers to the vdpa bus while vhost-vdpa is the device. Is my understanding correct? After running the commands in the blog [1], I see that there's a vhost-vdpa-0 device under /dev. I also have an entry "vdpa0" under /sys/bus/vdpa/devices/ which is a symlink to /sys/devices/vdpa0. There's a dir "vhost-vdpa-0" under "/sys/devices/vdpa0". Hypothetically, if vhost-vdpa-0 had been a PCI device, then it would have been present under /sys/bus/pci/devices, right? Another source of confusion was the pci.0 option passed to the qemu-kvm command. But I have understood this as well now: "-device virtio-net-pci" is a pci device. > > There's one more thing. In "use case 1" of "Running traffic with > > vhost_vdpa in Guest" [1], running "modprobe pktgen" in the L1 VM > > > > gives an error: > > > module pktgen couldn't be found in /lib/modules/6.5.6-300.fc39.x86_64. > > > > The kernel version is 6.5.6-300.fc39.x86_64. I haven't tried building > > pktgen manually in L1. I'll try that and will check if vdpa_sim works > > as expected after that. > > Did you install kernel-modules-internal? I just realized I had the wrong version of kernel-modules-internal installed. It works after installing the right version. Thanks, Sahil [1] https://www.redhat.com/en/blog/hands-vdpa-what-do-you-do-when-you-aint-got-hardware-part-1