<div dir="auto"><div>Hi Ed, <br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 6, 2024, 16:43 Lombardo, Ed <<a href="mailto:Ed.Lombardo@netscout.com" rel="noreferrer noreferrer" target="_blank">Ed.Lombardo@netscout.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div>
<p class="MsoNormal">The rte_eal_init() arguments are:<br></p>
<p class="MsoNormal">‘app_name, -c0x2, -n4, --socket-mem=2048, --legacy-mem, --no-telemetry’<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Could it be that the hugpages are not contiguous and reboot clears this issue, not able to confirm.</p></div></div></blockquote></div></div><div dir="auto">Yes, this is likely the root cause. Since you're building DPDK yourself, you can print cur->physaddr around line 900 (see the link below). In legacy mode, DPDK leaves "holes" (unused elements) in memory segment lists between pages that are not physically contiguous. Because in your case the segment list has only two elements, there is no room for two segments for two hugepages plus a hole segment between them.</div><div dir="auto"><a href="http://git.dpdk.org/dpdk/tree/lib/eal/linux/eal_memory.c#n832" rel="noreferrer noreferrer" target="_blank">http://git.dpdk.org/dpdk/tree/lib/eal/linux/eal_memory.c#n832</a></div><div dir="auto"><br></div><div dir="auto">Your options then are:</div><div dir="auto">- not using legacy memory mode;</div><div dir="auto">- increasing *_MAX_MEM_MB_* constants to 3072 (will also increase VIRT). </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word"><div><p class="MsoNormal"><u></u><u></u></p>
</div>
</div>
</blockquote></div></div></div>