[dpdk-users] Segfault in rte_ring_create

Paul Emmerich emmericp at net.in.tum.de
Thu Sep 15 23:54:29 CEST 2016


These are initializers that should be called on startup, but that failed 
for me for some reason. Probably because I'm not using the DPDK 
makefiles but some custom CMake stuff for my project.

The relevant initializers are:

void mp_hdlr_init_ops_mp_mc();
void mp_hdlr_init_ops_mp_sc();
void mp_hdlr_init_ops_sp_mc();
void mp_hdlr_init_ops_sp_sc();
void mp_hdlr_init_ops_stack();

Try calling them manually before initializing DPDK and see if that fixes 
your problem. You also might want to look at your build setup if that 
fixes your problem to find the root cause...

  Paul


Rob Zimmerman:
> Paul,
>
>   Forgive the ignorance, I don't see any reference to
> mp_hdlr_init_ops_mumble_mumble functions in the docs or examples. Is
> this an external dependency?
>
> Thanks,
> Rob
>
> On Thu, Sep 15, 2016 at 5:04 PM, Paul Emmerich <emmericp at net.in.tum.de
> <mailto:emmericp at net.in.tum.de>> wrote:
>
>     I've seen this when the mp_hdlr_init_ops_* functions were not called
>     on startup.
>
>      Paul
>
>     > Rob Zimmerman <rob at thezims.net <mailto:rob at thezims.net>>:
>     >
>     > Howdy everyone!
>     >
>     >
>     > Has anyone experienced a segfault in rte_ring_create which looks
>     like the
>     > following bt? Surely, this must be something with my environment
>     and not my
>     > version of DPDK (16.07).
>     >
>     > (gdb) bt
>     >
>     > #0  ___vfprintf_chk (fp=0x0, flag=1, format=0x599b50 "RING: Cannot
>     reserve
>     > memory for tailq\n", ap=0x7fff25c07990) at vfprintf_chk.c:29
>     >
>     > #1  0x000000000046c9fc in rte_vlog ()
>     >
>     > #2  0x0000000000424944 in rte_log ()
>     >
>     > #3  0x00000000004606f0 in rte_ring_create ()
>     >
>     >
>     > I checked my hugetables and everything looks like it should be OK (via
>     > dpdk-setup.sh)
>     >
>     > AnonHugePages:      8192 kB
>     >
>     > HugePages_Total:     512
>     >
>     > HugePages_Free:        0
>     >
>     > HugePages_Rsvd:        0
>     >
>     > HugePages_Surp:        0
>     >
>     > Hugepagesize:       2048 kB
>     >
>     >
>     > The call is made like so:
>     >
>     > struct rte_ring *pRing = rte_ring_create("TEST RING", 64,
>     SOCKET_ID_ANY, 0);
>     >
>     >
>     > As a side note, I actually hit this when trying to create a hash
>     > (rte_hash_create) which ends up calling this under the hood.
>     >
>     > Many thanks!
>
>     Chair of Network Architectures and Services
>     Department of Informatics
>     TU München
>     Boltzmannstr. 3
>     85748 Garching bei München, Germany
>
>
>
>


More information about the users mailing list