DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] Help required, DPDK throws EAL: eal_memalloc_alloc_seg_bulk()
@ 2021-04-11  9:49 Abid Zaidi
  0 siblings, 0 replies; only message in thread
From: Abid Zaidi @ 2021-04-11  9:49 UTC (permalink / raw)
  To: users

Hi everyone,

I have a DPDK environment setup and the buggy part of my program
concatenates a string. That string can be as long as it gets (lets say a
1,000,000 max characters). I run my program with *./program --lcores='0-4'*

I'm using DPDK's rte_malloc, rte_memcpy, rte_strlcat and rte_free
functions. Below is a snippet of the code

int current_length = strlen(fx->var);int new_length = (datalen +
current_length) + 1;
char *temp = (char *)rte_malloc("char *", new_length * (*fx->var), 0);

rte_memcpy(temp, fx->var, current_length);
rte_strlcat(temp, data, datalen);
temp[new_length] = '\0';


fx->var = (char *)rte_malloc("var", new_length * (*fx->var), 0);
rte_memcpy(fx->var, temp, new_length);
fx->var[new_length] = '\0';

rte_free(temp);

*My program exits after some time with EAL: eal_memalloc_alloc_seg_bulk():
couldn't find suitable memseg_list. *

Following is the stack trace I'm getting

(gdb) where#0  0x0000555555564d5b in _mm256_storeu_si256 (__A=...,
__P=0x0) at /usr/lib/gcc/x86_64-linux-gnu/9/include/avxintrin.h:928#1
rte_mov32 (
    src=0x1a80b5a80 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", dst=0x0)
at /usr/local/include/rte_memcpy.h:320#2  rte_mov64 (
    src=0x1a80b5a80 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", dst=0x0)
at /usr/local/include/rte_memcpy.h:330#3  rte_memcpy_aligned (n=88,
src=0x1a80b5a80, dst=0x0) at /usr/local/include/rte_memcpy.h:856#4
rte_memcpy (n=88, src=0x1a80b5a80, dst=0x0) at
/usr/local/include/rte_memcpy.h:872#5  parse_something
(flow=0x7ff7c83c8288, id=60806,
    data=0x7ff82cd77cc5 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
datalen=89, flags=4) at main.c:1187#6  0x000055555557c2e1 in
process_something (result=0x7fffed7fad88) at main.c:2147#7
0x000055555557c467 in some_flow (worker=0x7fffed7fad70,
result=0x7fffed7fad88) at main.c:2199#8  0x000055555557e5e0 in
some_loop (arg=0x5555556262f0) at main.c:2273


I need an idea of what's going wrong here, am I missing some EAL
configurations. Until then I'm looking into the docs and trying to
understand from DPDK programmer's guide (EAL, Mbuf, Mempool library in
specific).

Machine specs

   - DPDK 20.11.0-rc1
   - Ubuntu 20 (x86_64 GNU/Linux kernel 5.8.0-44-generic)
   - CPU: 32
   - RAM: 256GB
   - 2 DPDK ports(igb_uio) 6-7 GB/s
   - 1GB Hugepages

Link to stackoverflow question:
https://stackoverflow.com/questions/67038388/dpdk-throws-eal-eal-memalloc-alloc-seg-bulk-couldnt-find-suitable-memseg-li
 )
Regards,
Ali Abid Zaidi

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-11  9:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-11  9:49 [dpdk-users] Help required, DPDK throws EAL: eal_memalloc_alloc_seg_bulk() Abid Zaidi

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).