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 <[email protected]> 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 <[email protected]> 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

Reply via email to