[dpdk-dev] driver initialization in DPDK 2.0 built into a shared library.

Polevoy, Igor Igor_Polevoy at McAfee.com
Tue Jul 21 01:57:58 CEST 2015


After linking the shared library using –whole-archive and –start-group and allowing for multiple definitions also with –z,muldefs I have the situation when init is called two times and I’m  getting the core created inside the tailqinitfn_rte_uio_tailq
(eal_common_tailqs.c:153).
Commenting out the log print does not help as the method still returns -1 and goes to the rte_panic.

Igor

From: Keunhong Lee [mailto:dlrmsghd at gmail.com]
Sent: Tuesday, July 14, 2015 11:42 AM
To: Polevoy, Igor
Cc: dev at dpdk.org
Subject: Re: [dpdk-dev] driver initialization in DPDK 2.0 built into a shared library.

Did you tried 'mk/rte_app.mk<http://rte_app.mk>' to build you application?
Simply including -lrte_pmd_xxx may cause problem because
PMD_REGISTER_DRIVER uses 'init' attribute,
which is called before the 'main' function.
See the 'start-group' and 'whole-archive' linker options.

Keunhong.


2015-07-15 3:21 GMT+09:00 Polevoy, Igor <Igor_Polevoy at mcafee.com<mailto:Igor_Polevoy at mcafee.com>>:
Hi,
We are developing an application that uses DPDK PMD functionality .
We are using a linux shared library which contains the network packets processing code and it is statically linked with all the necessary DPDK libs.
The .so is loaded by the main program.
For the DPDK compilation we have added the -fPIC to the GCC options.

While it all worked fine with DPDK 1.6 where we had the rte_pmd_init_all method, in the 2.0 version the
drivers registration methods (PMD_REGISTER_DRIVER) are not called when the shared library is loaded.

Although, I can go along the lines of the rte_pmd_init all and manually call the driver registration, I'm concerned
that DPDK has other drivers initialization calls, and I don't actually know which are needed or could be needed and when.

Do you have any advice on that? What is the best way to resolve this issue?

Thank you
Igor.



More information about the dev mailing list