On 25-Nov-19 11:24 PM, Thomas Monjalon wrote:
21/11/2019 16:14, Burakov, Anatoly:
On 21-Nov-19 2:25 PM, Xueming Li wrote:
This patch fixes wrong inner memory element size when joining two
elements.
Fixes: af75078fece3 ("first public release")
Cc: sta...@dpdk.org
Signed-off-by: Xueming Li <xuemi...@mellanox.com>
---
--- a/lib/librte_eal/common/malloc_elem.c
+++ b/lib/librte_eal/common/malloc_elem.c
@@ -487,6 +487,10 @@ join_elem(struct malloc_elem *elem1, struct malloc_elem
*elem2)
else
elem1->heap->last = elem1;
elem1->next = next;
+ if (elem1->pad) {
+ struct malloc_elem *inner = RTE_PTR_ADD(elem1, elem1->pad);
+ inner->size = elem1->size - elem1->pad;
+ }
}
Reviewed-by: Anatoly Burakov <anatoly.bura...@intel.com>
I don't understand this patch.
The variable inner is never used.
What am I missing?
For padded elements, malloc element has two headers - the "outer" header
with empty space after it, and the "inner" header, after which the user
memory actually starts. This makes it so that, when joining elements, if
the outer element had a pad, we also update the inner element size to match.
--
Thanks,
Anatoly