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