[dpdk-users] Linking to multiple DPDK .so builds

Filip Janiszewski contact at filipjaniszewski.com
Tue Jul 9 08:45:45 CEST 2019


I've an issue that's better explained by an example:

We're shipping a tool to different customers with different
environments, sometime they run on Mellanox hardware, sometime on Intel

The main DPDK application is released in multiple builds to
accommodate every customer environment, this is a bit painful as the
number of different builds keep growing.

To solve the problem I would like to just release a build which is same
for everybody and then ship little plugins with dedicated code, the
problem is that when I try to load the DPDK shared library plugin into
my app with dlopen I keep getting errors like:

EAL: RTE_RING tailq is already registered
PANIC in tailqinitfn_rte_ring_tailq():
Cannot initialize tailq: RTE_RING

with subsequent shutdown. Is this a compilation issue that I can somehow
solve or that's plain not possible from DPDK design perspective? Ideally
I would like to:

1) Have a DPDK build (/mk/rte.extapp.mk) with a limited support for
certain features, like Mellanox PMD which have dependencies that are not
always meet..
2) When some of those features are required I would like to load
dynamically the DPDK .so library (/mk/rte.extshared.mk) which include
support for them and dedicated code to handle the app (1) processing.

Can anybody suggest a way to accomplish what I'm trying to do? Please
let me know if further details are needed.


BR, Filip
+48 666 369 823

More information about the users mailing list