DPDK usage discussions
 help / color / mirror / Atom feed
From: Verghis Koshi <vkoshi@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: users@dpdk.org
Subject: Re: Issues with basicfwd
Date: Wed, 19 Apr 2023 16:31:37 -0700	[thread overview]
Message-ID: <CAANwsYPkmqwQz0SpxLAgGWvNLVR1YyF3Y6U4u8aA=gzKjPgoOQ@mail.gmail.com> (raw)
In-Reply-To: <20230418184719.4a6a1d01@hermes.local>

[-- Attachment #1: Type: text/plain, Size: 6183 bytes --]

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

verghis@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@networkplumber.org> wrote:

> On Tue, 18 Apr 2023 17:14:21 -0700
> Verghis Koshi <vkoshi@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@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
> > >
>
> 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.
>

[-- Attachment #2: Type: text/html, Size: 7642 bytes --]

  reply	other threads:[~2023-04-19 23:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-18 17:11 Verghis Koshi
2023-04-19  0:14 ` Verghis Koshi
2023-04-19  1:47   ` Stephen Hemminger
2023-04-19 23:31     ` Verghis Koshi [this message]
2023-04-20  0:20       ` Stephen Hemminger
2023-04-20  0:25         ` Verghis Koshi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAANwsYPkmqwQz0SpxLAgGWvNLVR1YyF3Y6U4u8aA=gzKjPgoOQ@mail.gmail.com' \
    --to=vkoshi@gmail.com \
    --cc=stephen@networkplumber.org \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).