[dpdk-dev] DPDK Shared lib: No Ethernet ports

Shubhachint, Chaitanya Chaitanya.Shubhachint at netscout.com
Fri Sep 7 19:11:21 CEST 2018


Thank you for your reply Bruce. 
Still having issues with shared-lib DPDK. I tried both options and get two distinct issues. 
I tried running the l2fwd example with e1000 driver and get little farther. This time it does find the devices but there is an error with MBUF

root:build$./l2fwd -d /home/sp2/dpdk-18.08/x86_64-native-linuxapp-gcc/lib/librte_pmd_e1000.so
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: No free hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: PCI device 0000:00:19.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:1502 net_e1000_em
EAL: PCI device 0000:06:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:06:00.1 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:06:00.2 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:06:00.3 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:08:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:10d3 net_e1000_em
MAC updating enabled
MBUF: error setting mempool handler
EAL: Error - exiting with code: 1
  Cause: Cannot init mbuf pool

2nd Option of setting CONFIG_RTE_EAL_PMD_PATH option is ideal, but I run into issue with as well. I am configuring and installing the DPDK with CONFIG_RTE_EAL_PMD_PATH set as 
CONFIG_RTE_EAL_PMD_PATH=$(HOME)/dpdk-18.08/x86_64-native-linuxapp-gcc/lib

I this case I get following error when I run l2fwd

root:build$./l2fwd 
EAL: Detected 6 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: /home/sp2/dpdk-18.08/x86_64-native-linuxapp-gcc/lib/libdpdk.so: invalid ELF header
EAL: FATAL: Cannot init plugins

EAL: Cannot init plugins

EAL: Error - exiting with code: 1
  Cause: Invalid EAL arguments

Regards,
Chai

-----Original Message-----
From: Richardson, Bruce <bruce.richardson at intel.com> 
Sent: Friday, September 07, 2018 09:22 AM
To: Shubhachint, Chaitanya <Chaitanya.Shubhachint at netscout.com>; dev at dpdk.org
Subject: RE: DPDK Shared lib: No Ethernet ports

[EXTERNAL EMAIL]



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Shubhachint, 
> Chaitanya
> Sent: Friday, September 7, 2018 3:18 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] DPDK Shared lib: No Ethernet ports
> 
> Hello,
> 
> I recently started working with DPDK and gone through the initial 
> steps of getting source code installed and trying out few examples. To 
> integrate DPDK with our product, I need to build the share-lib version of DPDK.
> I run into an issue when I build DPDK as shared, I don't see this 
> issue when DPDK is built as static. DPDK built with default 
> configuration, I can run the examples and get expected results. When 
> built as shared, EAL detects no Ethernet ports.
> 
> I am building shared-lib version using steps below:
> . switch the CONFIG_RTE_BUILD_SHARED_LIB to y in the config/common_base .
> make config T=x86_64-native-linuxapp-gcc . make install 
> T=x86_64-native- linuxapp-gcc . export RTE_SDK=$HOME/dpdk-18.08 . 
> export RTE_TARGET=x86_64- native-linuxapp-gcc . build examples.
> . Set LD_LIBRARY_PATH to point to $HOME/dpdk-18.08/ x86_64-native- 
> linuxapp-gcc/lib
> 
> I am using Intel I350 Quad port NIC, and have switched to 
> uio_pci_generic driver => Network devices using DPDK-compatible driver 
> ============================================
> 0000:06:00.0 'I350 Gigabit Network Connection 1521' 
> drv=uio_pci_generic unused=igb
> 0000:06:00.1 'I350 Gigabit Network Connection 1521' 
> drv=uio_pci_generic unused=igb
> 0000:06:00.2 'I350 Gigabit Network Connection 1521' 
> drv=uio_pci_generic unused=igb
> 0000:06:00.3 'I350 Gigabit Network Connection 1521' 
> drv=uio_pci_generic unused=igb
> 
> When I run any examples, I get error 'No Ethernet ports'.
> 
> root:l2fwd$./build/l2fwd
> EAL: Detected 6 lcore(s)
> EAL: Detected 1 NUMA nodes
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
> EAL: No free hugepages reported in hugepages-1048576kB
> EAL: Probing VFIO support...
> MAC updating enabled
> EAL: Error - exiting with code: 1
>   Cause: No Ethernet ports - bye
> 
> Interestingly, same code base built with 'CONFIG_RTE_BUILD_SHARED_LIB=n'
> works just fine. The ports get detected correctly and I can run all 
> the examples and applications.
> 
> Your help is appreciated.

With shared library builds, the drivers are not linked in automatically. You need to explicitly load them via "-d" EAL flag - either individually or by passing in the path to a directory of drivers which can be loaded. See also in the build config the setting "CONFIG_RTE_EAL_PMD_PATH" which can be used to set a default search path for loading drivers.

Regards,
/Bruce


More information about the dev mailing list