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