DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] DPDK Shared lib: No Ethernet ports
@ 2018-09-07 14:18 Shubhachint, Chaitanya
  2018-09-07 14:22 ` Richardson, Bruce
  0 siblings, 1 reply; 4+ messages in thread
From: Shubhachint, Chaitanya @ 2018-09-07 14:18 UTC (permalink / raw)
  To: dev

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.
Regards,
Chai.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] DPDK Shared lib: No Ethernet ports
  2018-09-07 14:18 [dpdk-dev] DPDK Shared lib: No Ethernet ports Shubhachint, Chaitanya
@ 2018-09-07 14:22 ` Richardson, Bruce
  2018-09-07 17:11   ` Shubhachint, Chaitanya
  0 siblings, 1 reply; 4+ messages in thread
From: Richardson, Bruce @ 2018-09-07 14:22 UTC (permalink / raw)
  To: Shubhachint, Chaitanya, dev



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shubhachint,
> Chaitanya
> Sent: Friday, September 7, 2018 3:18 PM
> To: dev@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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] DPDK Shared lib: No Ethernet ports
  2018-09-07 14:22 ` Richardson, Bruce
@ 2018-09-07 17:11   ` Shubhachint, Chaitanya
  2018-09-10 10:46     ` Bruce Richardson
  0 siblings, 1 reply; 4+ messages in thread
From: Shubhachint, Chaitanya @ 2018-09-07 17:11 UTC (permalink / raw)
  To: Richardson, Bruce, dev

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@intel.com> 
Sent: Friday, September 07, 2018 09:22 AM
To: Shubhachint, Chaitanya <Chaitanya.Shubhachint@netscout.com>; dev@dpdk.org
Subject: RE: DPDK Shared lib: No Ethernet ports

[EXTERNAL EMAIL]



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Shubhachint, 
> Chaitanya
> Sent: Friday, September 7, 2018 3:18 PM
> To: dev@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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] DPDK Shared lib: No Ethernet ports
  2018-09-07 17:11   ` Shubhachint, Chaitanya
@ 2018-09-10 10:46     ` Bruce Richardson
  0 siblings, 0 replies; 4+ messages in thread
From: Bruce Richardson @ 2018-09-10 10:46 UTC (permalink / raw)
  To: Shubhachint, Chaitanya; +Cc: dev

On Fri, Sep 07, 2018 at 05:11:21PM +0000, Shubhachint, Chaitanya wrote:
> 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
> 

To use CONFIG_RTE_EAL_PMD_PATH, you really need to have the drivers all in
a separate directory, without any additional libs present. Other non-PMD
libraries will cause the error above when they are loaded.

/Bruce

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-09-10 10:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-07 14:18 [dpdk-dev] DPDK Shared lib: No Ethernet ports Shubhachint, Chaitanya
2018-09-07 14:22 ` Richardson, Bruce
2018-09-07 17:11   ` Shubhachint, Chaitanya
2018-09-10 10:46     ` Bruce Richardson

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).