* [dpdk-users] using dpdk as a shared library
@ 2020-12-18 22:38 Justin Tallon
2020-12-19 19:27 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: Justin Tallon @ 2020-12-18 22:38 UTC (permalink / raw)
To: users
Hey guys,
We are trying to use dpdk (dpdk-stable-18.08.1) as a shared library.
We have recompiled as a shared library by setting
*CONFIG_RTE_BUILD_SHARED_LIB=y*
My program compiles file and I can see the relevant libraries when I use
ldd on the binary.
I direct my binary look in the correct place by using export
LD_LIBRARY_PATH and the binary appears to find the libraries.
However, when the function rte_eth_dev_count_avail returns it returns a 0
and exits, when I run the same program with static libraries, it works
correctly.
Any help on this would be great!
Regards,
Justin
____
Justin Tallon Ph.D.
Software Radio Systems (SRS)
http://www.softwareradiosystems.com
+353-86-067-0753 | justin.tallon@softwareradiosystems.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-users] using dpdk as a shared library
2020-12-18 22:38 [dpdk-users] using dpdk as a shared library Justin Tallon
@ 2020-12-19 19:27 ` Stephen Hemminger
2020-12-21 23:20 ` Justin Tallon
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2020-12-19 19:27 UTC (permalink / raw)
To: Justin Tallon; +Cc: users
On Fri, 18 Dec 2020 23:38:28 +0100
Justin Tallon <justin.tallon@softwareradiosystems.com> wrote:
> Hey guys,
>
> We are trying to use dpdk (dpdk-stable-18.08.1) as a shared library.
>
> We have recompiled as a shared library by setting
> *CONFIG_RTE_BUILD_SHARED_LIB=y*
>
> My program compiles file and I can see the relevant libraries when I use
> ldd on the binary.
>
> I direct my binary look in the correct place by using export
> LD_LIBRARY_PATH and the binary appears to find the libraries.
> However, when the function rte_eth_dev_count_avail returns it returns a 0
> and exits, when I run the same program with static libraries, it works
> correctly.
>
> Any help on this would be great!
>
> Regards,
> Justin
>
>
> ____
> Justin Tallon Ph.D.
>
> Software Radio Systems (SRS)
> http://www.softwareradiosystems.com
>
> +353-86-067-0753 | justin.tallon@softwareradiosystems.com
When used as a shared library DPDK does not automatically load any required poll
mode driver libraries. You have to pass -d flag to make it load what you want.
I consider this a bug (others do not), and think the DPDK should have a table
mapping PCI device id to the PMD shared library and automatically load the PMD
shared library (like the Linux kernel module autoloading works).
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-users] using dpdk as a shared library
2020-12-19 19:27 ` Stephen Hemminger
@ 2020-12-21 23:20 ` Justin Tallon
2020-12-21 23:32 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: Justin Tallon @ 2020-12-21 23:20 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: users
Hey Stephen,
Thanks for the response, I have passed the directory of the dpdk library as
you said with the -d flag.
However, when I did this, I get the following error.
libdpdk.so: invalid ELF header
any help with this would be appreciated.
Regards,
Justin
____
Justin Tallon Ph.D.
Software Radio Systems (SRS)
http://www.softwareradiosystems.com
+353-86-067-0753 | justin.tallon@softwareradiosystems.com
On Sat, Dec 19, 2020 at 8:27 PM Stephen Hemminger <
stephen@networkplumber.org> wrote:
> On Fri, 18 Dec 2020 23:38:28 +0100
> Justin Tallon <justin.tallon@softwareradiosystems.com> wrote:
>
> > Hey guys,
> >
> > We are trying to use dpdk (dpdk-stable-18.08.1) as a shared library.
> >
> > We have recompiled as a shared library by setting
> > *CONFIG_RTE_BUILD_SHARED_LIB=y*
> >
> > My program compiles file and I can see the relevant libraries when I use
> > ldd on the binary.
> >
> > I direct my binary look in the correct place by using export
> > LD_LIBRARY_PATH and the binary appears to find the libraries.
> > However, when the function rte_eth_dev_count_avail returns it returns a 0
> > and exits, when I run the same program with static libraries, it works
> > correctly.
> >
> > Any help on this would be great!
> >
> > Regards,
> > Justin
> >
> >
> > ____
> > Justin Tallon Ph.D.
> >
> > Software Radio Systems (SRS)
> > http://www.softwareradiosystems.com
> >
> > +353-86-067-0753 | justin.tallon@softwareradiosystems.com
>
> When used as a shared library DPDK does not automatically load any
> required poll
> mode driver libraries. You have to pass -d flag to make it load what you
> want.
>
> I consider this a bug (others do not), and think the DPDK should have a
> table
> mapping PCI device id to the PMD shared library and automatically load the
> PMD
> shared library (like the Linux kernel module autoloading works).
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-users] using dpdk as a shared library
2020-12-21 23:20 ` Justin Tallon
@ 2020-12-21 23:32 ` Stephen Hemminger
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2020-12-21 23:32 UTC (permalink / raw)
To: Justin Tallon; +Cc: users
On Tue, 22 Dec 2020 00:20:51 +0100
Justin Tallon <justin.tallon@softwareradiosystems.com> wrote:
> Hey Stephen,
>
> Thanks for the response, I have passed the directory of the dpdk library as
> you said with the -d flag.
>
> However, when I did this, I get the following error.
>
> libdpdk.so: invalid ELF header
>
> any help with this would be appreciated.
>
> Regards,
> Justin
>
You need to pass the individual pmd library name.
libdpdk.so is a linker script, not a real shared library.
It disappeared in later versions.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-12-21 23:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-18 22:38 [dpdk-users] using dpdk as a shared library Justin Tallon
2020-12-19 19:27 ` Stephen Hemminger
2020-12-21 23:20 ` Justin Tallon
2020-12-21 23:32 ` Stephen Hemminger
DPDK usage discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://inbox.dpdk.org/users/0 users/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 users users/ http://inbox.dpdk.org/users \
users@dpdk.org
public-inbox-index users
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://inbox.dpdk.org/inbox.dpdk.users
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git