Hi Dmitry,
You pointed out a good point.  I passed the literal "--socket-mem=2048,2048" in 
the array provided to rte_eal_init() function, where DPDK EAL tries to tokenize 
in place the string and it crashes trying to modify a readonly memory.  I don't 
know why DPDK does this.  But now I know, and I now see four rtemap_x files 
created for two sockets.

Thank you,
Ed

-----Original Message-----
From: Dmitry Kozlyuk <dmitry.kozl...@gmail.com> 
Sent: Friday, April 4, 2025 6:40 PM
To: Lombardo, Ed <ed.lomba...@netscout.com>; users@dpdk.org
Subject: Re: hugepages on both sockets

External Email: This message originated outside of NETSCOUT. Do not click links 
or open attachments unless you recognize the sender and know the content is 
safe.

Hi Ed,

On 05.04.2025 01:24, Lombardo, Ed wrote:
>
> Hi,
>
> I tried to pass into dpdk_eal_init() the argument 
> --socket-mem=2048,2048” and I get segmentation error when strsplit() 
> function is called
>
>         arg_num = rte_strsplit(strval, len,
>
>                         arg, RTE_MAX_NUMA_NODES, ',');
>
Please forgive me for the stupid question:
"strval" points to a mutable buffer, like "char strval[] = "2048,2048", not 
"char *strval = "2048,2048"?

> If I pass “--socket_mem=2048”, --socket-mem=2048”, rte_eal_init() does 
> not complain.
>
> Not sure if this would ensure both CPU sockets will host 2-1G 
> hugepages?  I suspect it doesn’t because I only see to rtemap_0 and
> rtemap_1 in /mnt/huge directory.  I think I should see four total.
>
> # /opt/dpdk/dpdk-hugepages.py -s
>
> Node Pages Size Total
>
> 0    2     1Gb    2Gb
>
> 1    2     1Gb    2Gb
>
> I don’t know if I should believe the above output showing 2Gb on Numa 
> Nodes 0 and 1.
>
You are correct, --socket-mem=2048 allocates 2048 MB total, spreading between 
nodes.

Reply via email to