On Fri, Jan 17, 2025 at 05:20:41PM +0300, Dmitry Kozlyuk wrote:
> 2025-01-17 13:52 (UTC+0000), Bruce Richardson:
> > The test case "test_multi_alloc_statistics" was brittle in that it did
> > some allocations and frees and then checked statistics without
> > considering the initial state of the malloc heaps. This meant that,
> > depending on what allocations/frees were done beforehand, the test can
> > sometimes fail.
> > 
> > We can improve resiliency by running the test using a new malloc heap,
> > which means it is unaffected by any previous allocations.
> > 
> > Bugzilla ID: 1579
> > Fixes: a40a1f8231b4 ("app: various tests update")
> > Cc: sta...@dpdk.org
> > 
> > Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
> > ---
> > v2:
> > * removed unnecessary extra include
> > * only added new code for non-windows, since using mmap for allocation.
> 
> Why is it necessary to use `mmap()` and not portable `malloc()`?
> Even the comment in the patch says "malloc" :)

I did originally use malloc, but malloc didn't give us aligned memory so
the call to add the memory to the heap was subsequently failing.

However, I see that the unit tests in the CI are failing on some
architectures, probably because of alignment again, because of using a
single 2MB block of memory. I was going to do a v3 where I queried the
pagesize and used N*pgsize as the parameter to "add" rather than saying
it's a 1x2MB block. Instead, though, I'll rework the code
to use malloc and then manually align instead.

/Bruce

Reply via email to