From: Stephen Hemminger <stephen@networkplumber.org>
To: Ming Fu <Ming.Fu@esentire.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] How rte_mempool_ops_table is populated in a DPDK client application?
Date: Fri, 1 Sep 2017 13:47:24 -0700 [thread overview]
Message-ID: <20170901134724.7e292a7f@xeon-e3> (raw)
In-Reply-To: <348a7faca1b44f419567717f4be29bf8@mbx01cmb01p.esentire.local>
On Fri, 1 Sep 2017 20:26:48 +0000
Ming Fu <Ming.Fu@esentire.com> wrote:
> Did some digging and find that the rte_mempool_ops_table is populated from function rte_mempool_register_ops().
> From a small program build in the dpdk example, the rte_mempool_register_ops() is called from the following stack trace
>
> (gdb) where
> #0 0x000000000047eea0 in rte_mempool_register_ops ()
> #1 0x00000000006a8abd in __libc_csu_init ()
> #2 0x00007ffff71f97bf in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
> #3 0x0000000000440f29 in _start ()
>
> So this function is called probably before rte_eal_init(). If I have an application linked to a static lib of dpdk outside of dpdk build tree, how do I make it to register the call to rte_mempool_register_ops from __libc_csu_init()?
>
> Thanks
> Ming
>
> From: Ming Fu
> Sent: September-01-17 9:36 AM
> To: users@dpdk.org
> Subject: How rte_mempool_ops_table is populated in a DPDK client application?
>
> Try to make snort to receive packet from a dpdk ring as an client application. The DPDK is compiled into the snort DAQ lib statically. The DAQ lib is then linked to snort statically.
>
> What I am find is that the rte_mempool_ops_table is all 0, causing the client to crash when free the received mbuf from the ring. I was wondering how this rte_mempool_ops_table is populated during DPDK initialization for a client application.
>
> The my dpdk snort went through rte_eal_init(), rte_ring_lookup() and rte_mempool_lookup() without error.
>
> Thanks
> Ming
Make sure static initalizers are run in your program. If you use the DPDK mk rules, it works correctly.
If you use other build environments, you need to adjust the linker flags.
next prev parent reply other threads:[~2017-09-01 20:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-01 20:26 Ming Fu
2017-09-01 20:47 ` Stephen Hemminger [this message]
2017-09-01 20:56 ` Ming Fu
2017-09-01 21:01 ` Stephen Hemminger
-- strict thread matches above, loose matches on Subject: below --
2017-09-01 13:36 Ming Fu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170901134724.7e292a7f@xeon-e3 \
--to=stephen@networkplumber.org \
--cc=Ming.Fu@esentire.com \
--cc=users@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).