Issues with basicfwd

Verghis Koshi vkoshi at gmail.com
Thu Apr 20 01:31:37 CEST 2023


Hi Stephen,
    Thanks for the response.
    I've tried with two virtual NICs, each bound to VFIO, as you can see
below.

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

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

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

    I'm not sure I understand what you mean by 'is the virtual NIC in
VirtualBox the same as virtio.  The
NICs are PCnet32 LANCE, a standard NIC, bound to VFIO.  In Linux Mint 21
VFIO is built into the kernel,
not a loadable module.
    And yet the basicfwd code cannot find even 1 VFIO port.  Very weird.
Any ideas?
    Thanks.

On Tue, Apr 18, 2023 at 6:47 PM Stephen Hemminger <
stephen at networkplumber.org> wrote:

> On Tue, 18 Apr 2023 17:14:21 -0700
> Verghis Koshi <vkoshi at gmail.com> wrote:
>
> >     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 at 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 at 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 at 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
> > >
>
> You need to create two virtual nic's and bind them to VFIO which
> will remove from the kernel driver. Not familiar with VirtualBox config.
> Is the virtual NIC in Virtual Box is not the same as virtio.
> If it depends on the proprietary kernel driver, then
> you are unlikely to get DPDK to work in virtual box environment.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/users/attachments/20230419/446d2c22/attachment.htm>


More information about the users mailing list