<div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 18, 2023 at 3:07 AM David Marchand <<a href="mailto:david.marchand@redhat.com">david.marchand@redhat.com</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
It is a "recurring" yet not so well known issue.<br>
This unit test fails if any part of the DPDK did not release all<br>
(hugepage backed) memory and associated hugepages before exiting.<br>
<br>
In your case here, there is a virtio-net device that the container<br>
tries to get its hands on because DPDK scans and probes all available<br>
resources by default (and fails to, in this case, but that's not<br>
important).<br>
Triggering this virtio-net probing makes ethdev allocate its shared<br>
memzone for port data, but nothing in ethdev releases the memzone when<br>
exiting.<br>
Fixing this could be tricky... as the current ethdev code is really<br>
vague around which locks protect what (if anything..).<br>
<br>
I think we hit this issue in the past, and avoided it by running the<br>
tests with dynamically linked DPDK binaries (and by doing this, avoid<br>
the net drivers get loaded).<br>
<br>
I can see that you are running the unit tests with a static binary in<br>
the report you sent.<br>
I think the default is shared mode, so I wonder what could be the<br>
reason why UNH builds with static here.<br>
In any case, could you have a try and switch to<br>
-Ddefault_library=shared (or remove forcing to static mode)?<br><br>
</blockquote></div><div>Thanks for helping debug this David.</div><div><br></div>I think the default library actually is static, but let me know if I misunderstand: <a href="https://git.dpdk.org/dpdk/tree/meson.build">https://git.dpdk.org/dpdk/tree/meson.build</a>. If you meson configure on the output of 'meson setup build' it says static is the default. <div><br></div><div>```<br>        default_options: [<br>            'buildtype=release',<br>            'c_std=c11',<br>            'default_library=static',<br>            'warning_level=2',<br>        ],<br>```<br clear="all"><div><br></div></div><div>I tried a build forcing default_library=shared, and all fast-tests unit tests failed. I can look further into this if you think shared mode might be the best way forward though. But I am assuming for now if static is indeed the default, that is the way we should build for testing. </div><div><br></div><div>For your patch, it looks like there are actually more eal flags test failures: <a href="http://mails.dpdk.org/archives/test-report/2023-August/444170.html">http://mails.dpdk.org/archives/test-report/2023-August/444170.html</a>. In any case, for debugging purposes, I will do a run with the eal_flags_file_prefix_autotest also included and send you the meson test detail log on slack. </div><div><br></div></div>