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