If called to allocate memory of size is between multiple of hugepage
size minus malloc_header_len and hugepage size, rte_malloc fails.
This fix replaces malloc_elem_trailer_len with malloc_elem_overhead in
try_expand_heap() to include malloc_elem_header_len when calculating
n_seg.
Bugzilla ID: 800
Fixes: 07dcbfe0101f ("malloc: support multiprocess memory hotplug")
Cc: stable@dpdk.org
Signed-off-by: Fidaullah Noonari <fidaullah.noonari@emumba.com>
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
bool callback_triggered = false;
alloc_sz = RTE_ALIGN_CEIL(align + elt_size +
- MALLOC_ELEM_TRAILER_LEN, pg_sz);
+ MALLOC_ELEM_OVERHEAD, pg_sz);
n_segs = alloc_sz / pg_sz;
/* we can't know in advance how many pages we'll need, so we malloc */
}
alloc_sz = RTE_ALIGN_CEIL(ar->align + ar->elt_size +
- MALLOC_ELEM_TRAILER_LEN, ar->page_sz);
+ MALLOC_ELEM_OVERHEAD, ar->page_sz);
n_segs = alloc_sz / ar->page_sz;
/* we can't know in advance how many pages we'll need, so we malloc */