On 26-Nov-19 1:45 PM, Thomas Monjalon wrote:
26/11/2019 14:39, Xueming(Steven) Li:
-----Original Message-----
From: Thomas Monjalon <tho...@monjalon.net>
Sent: Tuesday, November 26, 2019 9:30 PM
To: Burakov, Anatoly <anatoly.bura...@intel.com>
Cc: Xueming(Steven) Li <xuemi...@mellanox.com>; dev@dpdk.org; Asaf
Penso <as...@mellanox.com>; sta...@dpdk.org;
david.march...@redhat.com
Subject: Re: [dpdk-dev] [PATCH] malloc: fix memory element size in case of
padding
26/11/2019 13:57, Burakov, Anatoly:
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.
Where the variable "inner" is used in this function?
Right on the next line after it is created :)
--
Thanks,
Anatoly