When heap initializes, we need to add already allocated segments
onto the heap. However, in doing that, we never increased total
heap size. Fix it by adding segment length to total heap length
when initializing the heap.

Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
Cc: anatoly.bura...@intel.com

Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com>
---
 lib/librte_eal/common/malloc_heap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/librte_eal/common/malloc_heap.c 
b/lib/librte_eal/common/malloc_heap.c
index 590e9e3..bc96835 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -106,6 +106,8 @@ malloc_add_seg(const struct rte_memseg_list *msl,
 
        malloc_heap_add_memory(heap, found_msl, ms->addr, len);
 
+       heap->total_size += len;
+
        RTE_LOG(DEBUG, EAL, "Added %zuM to heap on socket %i\n", len >> 20,
                        msl->socket_id);
        return 0;
-- 
2.7.4

Reply via email to