Help Running Example

Alan Beadle ab.beadle at gmail.com
Wed Aug 9 19:35:59 CEST 2023


I'm going to get a dedicated NIC so that I can continue on the other
machine, but in the meantime I discovered that one of my old laptops
places the ethernet NIC in a unique IOMMU group:

02:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetLink
BCM57780 Gigabit Ethernet PCIe (rev 01)
1 [    1.726704] pci 0000:00:01.0: Adding to iommu group 1
1 [    1.726892] pci 0000:01:00.0: Adding to iommu group 1
2 [    1.726720] pci 0000:00:02.0: Adding to iommu group 2
3 [    1.726734] pci 0000:00:14.0: Adding to iommu group 3
4 [    1.726751] pci 0000:00:16.0: Adding to iommu group 4
5 [    1.726764] pci 0000:00:1a.0: Adding to iommu group 5
6 [    1.726778] pci 0000:00:1b.0: Adding to iommu group 6
7 [    1.726792] pci 0000:00:1c.0: Adding to iommu group 7
8 [    1.726805] pci 0000:00:1c.1: Adding to iommu group 8
9 [    1.726818] pci 0000:00:1c.2: Adding to iommu group 9
10 [    1.726833] pci 0000:00:1d.0: Adding to iommu group 10
11 [    1.726859] pci 0000:00:1f.0: Adding to iommu group 11
11 [    1.726872] pci 0000:00:1f.2: Adding to iommu group 11
11 [    1.726886] pci 0000:00:1f.3: Adding to iommu group 11
12 [    1.726905] pci 0000:02:00.0: Adding to iommu group 12
13 [    1.726920] pci 0000:03:00.0: Adding to iommu group 13
14 [    1.726933] pci 0000:04:00.0: Adding to iommu group 14

After following the same steps on this machine, and commenting out the
port counting as suggested, I have a new error:

EAL: Detected CPU lcores: 4
EAL: Detected NUMA nodes: 1
EAL: Detected shared linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: VFIO support initialized
TELEMETRY: No legacy callbacks, legacy socket not created
EAL: Error - exiting with code: 1
  Cause: Cannot create mbuf pool

Based on my research, it looks like this can be caused by a lack of hugepages.
Here is an excerpt from /proc/meminfo:

HugePages_Total:    1024
HugePages_Free:     1024
HugePages_Rsvd:        0
HugePages_Surp:        0

Which seems fine to me. Any idea what might be causing this problem?

Thanks again.

On Mon, Aug 7, 2023 at 11:25 PM Fuji Nafiul <nafiul.fuji at gmail.com> wrote:
>
> In the case of the " number of ports must be even " error, it's a simple one. if you look into the code, you will see that it is checking for the number of ports and it is giving an error if the port number is not even as the skeleton app mainly receives packet on 1 port and forward them to a different port (as far as I remember). So, for the sake of simplicity, if you have odd numbers of ports or just a single port, don't worry, just comment out the port number checking and you can even comment out the tx part ( rte_eth_tx_burst() ) and rather free all received packets. Then run and monitor the packet counting which will give you a kick start and later you can try replying to arp requests to expose IP by which you will be able to establish udp/tcp connection.. I suggest try udp first (I also only worked with UDP in dpdk) and you will get a lot of help about this from "bond" app in the official examples.
>
> On Sun, Aug 6, 2023 at 9:34 PM Alan Beadle <ab.beadle at gmail.com> wrote:
>>
>> Hi,
>>
>> I need some help getting DPDK working. I am running Ubuntu 20.04 with
>> a modified Linux 5.4 kernel, but I have also tried the stock Ubuntu
>> 5.15 kernel with the same results.
>>
>> Here is my NIC info from lspci:
>> 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (3)
>> I219-LM (rev 09)
>>
>> I built and installed DPDK from source, and applied the following boot
>> flags: "intel_iommu=on iommu=pt"
>>
>> After booting I did the following as root:
>> echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
>> ifconfig enp0s31f6 down
>> dpdk-devbind.py --bind=vfio-pci 0000:00:1f.6
>>
>> All of this appeared to work.
>>
>> I tried running the "skeleton" example program and got the following output:
>> sudo ./build/basicfwd
>> EAL: Detected CPU lcores: 16
>> EAL: Detected NUMA nodes: 1
>> EAL: Detected shared linkage of DPDK
>> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
>> EAL: Selected IOVA mode 'VA'
>> EAL: VFIO support initialized
>> EAL: 0000:00:1f.6 VFIO group is not viable! Not all devices in IOMMU
>> group bound to VFIO or unbound
>> EAL: Requested device 0000:00:1f.6 cannot be used
>> TELEMETRY: No legacy callbacks, legacy socket not created
>> EAL: Error - exiting with code: 1
>>   Cause: Error: number of ports must be even
>>
>> I'm not at all familiar with DPDK or VFIO. What might the problem be?
>>
>> -Alan


More information about the users mailing list