It appears that the vdev_device_list is empty - isn't this where the probe function for VFIO lives?

rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, vbus->name vdev
vdev_probe, file ../drivers/bus/vdev/vdev.c, PROBE, &vdev_device_list 0x56337bb30d30
vdev_probe, file ../drivers/bus/vdev/vdev.c, dev is (nil)

    This is how I call basicfwd, am I missing something?

sudo examples/dpdk-skeleton -l 1 -n 4

    Thanks,.

Verghis




m

On Tue, Apr 18, 2023 at 10:11 AM Verghis Koshi <vkoshi@gmail.com> wrote:
    I'm having trouble running the basicfwd example and would appreciate any help.
    I'm running Linux Mint 21.1 inside VirtualBox, and I've created two NICs:

verghis@verghis-VirtualBox:~/dpdk-stable-22.11.1/build$ ../usertools/dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
0000:00:03.0 '79c970 [PCnet32 LANCE] 2000' drv=vfio-pci unused=pcnet32

Network devices using kernel driver
===================================
0000:00:08.0 '82540EM Gigabit Ethernet Controller 100e' if=enp0s8 drv=e1000 unused=vfio-pci *Active*

    The first is bound to vfio-pci, to be used by basicfwd, and the second uses the normal e1000 driver.
    But when I run the code, it doesn't seem to see the VFIO driver at all; further, it seems to think that 00:08.0
is using a non-kernel driver - why?
    Here's the debug output; it should pick up the single VFIO port.  I don't care about the 'even number of ports', that's
easy to fix.
    My apologies if I'm overlooking something simple.

verghis@verghis-VirtualBox:~/dpdk-stable-22.11.1/build$ sudo examples/dpdk-skeleton -l 1 -n 4
EAL: Detected CPU lcores: 2
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
rte_vfio_enable, file ../lib/eal/linux/eal_vfio.c, VFIO support initialized
0: examples/dpdk-skeleton (rte_dump_stack+0x42) [55bed7d42d62]
1: examples/dpdk-skeleton (55bed6cbb000+0x23b39f) [55bed6ef639f]
2: examples/dpdk-skeleton (55bed6cbb000+0x239211) [55bed6ef4211]
3: examples/dpdk-skeleton (main+0xf) [55bed70ac51f]
4: /lib/x86_64-linux-gnu/libc.so.6 (7fbde5fb2000+0x29d90) [7fbde5fdbd90]
5: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0x80) [7fbde5fdbe40]
6: examples/dpdk-skeleton (_start+0x25) [55bed7b86055]
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name auxiliary
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name dpaa_bus
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name fslmc
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name ifpga
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name pci
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:01.1
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:02.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:03.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:04.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:05.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:06.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:07.0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:08.0
rte_pci_map_device, file ../drivers/bus/pci/linux/pci.c, rte_pci_device->name 0000:00:08.0, dev->kdrv 0
pci_probe, file ../drivers/bus/pci/pci_common.c, dev->name 0000:00:0d.0
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name vmbus
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, bus->name dsa
rte_bus_probe, file ../lib/eal/common/eal_common_bus.c, vbus->name vdev
vdev_probe, file ../drivers/bus/vdev/vdev.c, PROBE, &vdev_device_list 0x55bed8764d30
vdev_probe, file ../drivers/bus/vdev/vdev.c, dev is (nil)
TELEMETRY: No legacy callbacks, legacy socket not created
main, file ../examples/skeleton/basicfwd.c, nb_ports 0
EAL: Error - exiting with code: 1
  Cause: Error: number of ports must be even

Verghis