<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:11.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal">I am having problems with rte_eal_init() and assigning DPDK memory to one numa node (I have two numa node system).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The server is a DELL R730 with dual Haswell processors running Oracle91 (kernel version 5.14.0-284).<o:p></o:p></p>
<p class="MsoNormal">Total Memory is 128 GB.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Program received signal SIGSEGV, Segmentation fault.<o:p></o:p></p>
<p class="MsoNormal">rte_strsplit (string=string@entry=0x2ee4ec5 "2048,0", stringlen=stringlen@entry=6, tokens=tokens@entry=0x7ffcc7d21f80,<o:p></o:p></p>
<p class="MsoNormal">    maxtokens=maxtokens@entry=32, delim=delim@entry=44 ',') at ../lib/eal/common/eal_common_string_fns.c:32<o:p></o:p></p>
<p class="MsoNormal">32      ../lib/eal/common/eal_common_string_fns.c: No such file or directory.<o:p></o:p></p>
<p class="MsoNormal">(gdb) bt<o:p></o:p></p>
<p class="MsoNormal">#0  rte_strsplit (string=string@entry=0x2ee4ec5 "2048,0", stringlen=stringlen@entry=6, tokens=tokens@entry=0x7ffcc7d21f80,<o:p></o:p></p>
<p class="MsoNormal">    maxtokens=maxtokens@entry=32, delim=delim@entry=44 ',') at ../lib/eal/common/eal_common_string_fns.c:32<o:p></o:p></p>
<p class="MsoNormal">#1  0x0000000002852014 in eal_parse_socket_arg (strval=0x2ee4ec5 "2048,0", socket_arg=socket_arg@entry=0x72b2fb8 <internal_config+56>)<o:p></o:p></p>
<p class="MsoNormal">    at ../lib/eal/linux/eal.c:485<o:p></o:p></p>
<p class="MsoNormal">#2  0x000000000285262d in eal_parse_args (argv=0x7ffcc7d2a990, argc=9) at ../lib/eal/linux/eal.c:696<o:p></o:p></p>
<p class="MsoNormal">#3  rte_eal_init (argc=9, argv=0x7ffcc7d2a990) at ../lib/eal/linux/eal.c:1005<o:p></o:p></p>
<p class="MsoNormal">#4  0x0000000000499482 in main (argc=2, argv=0x7ffcc7d2ad18) at linuxmain.c:4320<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Perhaps what I provided as an argument “--socket-mem=2048,0” to rte_eal_init() is not supported?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">When I try remove the rte_eal_init argument “--socket-mem”  it seems to work, puts the DPDK memory on socket 0.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">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?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any guidance would be greatly appreciated.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Ed<o:p></o:p></p>
</div>
</body>
</html>