Hi,

I am having problems with rte_eal_init() and assigning DPDK memory to one numa node (I have two numa node system).

 

The server is a DELL R730 with dual Haswell processors running Oracle91 (kernel version 5.14.0-284).

Total Memory is 128 GB.

 

I tried modifying an argument I had used in the past and added a second value, for second socket, with a ‘,’ delimiter to exclude DPDK memory on socket 2.  I tried “--socket-mem=2048,0” and rte_eal_init() suffers a Segmentation fault.

 

 

Program received signal SIGSEGV, Segmentation fault.

rte_strsplit (string=string@entry=0x2ee4ec5 "2048,0", stringlen=stringlen@entry=6, tokens=tokens@entry=0x7ffcc7d21f80,

    maxtokens=maxtokens@entry=32, delim=delim@entry=44 ',') at ../lib/eal/common/eal_common_string_fns.c:32

32      ../lib/eal/common/eal_common_string_fns.c: No such file or directory.

(gdb) bt

#0  rte_strsplit (string=string@entry=0x2ee4ec5 "2048,0", stringlen=stringlen@entry=6, tokens=tokens@entry=0x7ffcc7d21f80,

    maxtokens=maxtokens@entry=32, delim=delim@entry=44 ',') at ../lib/eal/common/eal_common_string_fns.c:32

#1  0x0000000002852014 in eal_parse_socket_arg (strval=0x2ee4ec5 "2048,0", socket_arg=socket_arg@entry=0x72b2fb8 <internal_config+56>)

    at ../lib/eal/linux/eal.c:485

#2  0x000000000285262d in eal_parse_args (argv=0x7ffcc7d2a990, argc=9) at ../lib/eal/linux/eal.c:696

#3  rte_eal_init (argc=9, argv=0x7ffcc7d2a990) at ../lib/eal/linux/eal.c:1005

#4  0x0000000000499482 in main (argc=2, argv=0x7ffcc7d2ad18) at linuxmain.c:4320

 

Perhaps what I provided as an argument “--socket-mem=2048,0” to rte_eal_init() is not supported?

 

 

 

My goal is to allocate all DPDK memory and Hugepage memory to processor 1 (socket 1) on Numa Node 0 where the NIC is located.

 

 

When I try remove the rte_eal_init argument “--socket-mem”  it seems to work, puts the DPDK memory on socket 0.

 

I may want to allocate DPDK memory on second socket or on both CPU sockets with different amounts, how can I do this with ret_eal_init arguments?

 

Any guidance would be greatly appreciated.

 

Thanks,

Ed