* [PATCH 0/4] Heap library and test case changes
@ 2023-05-19 4:29 Ruifeng Wang
2023-05-19 4:29 ` [PATCH 1/4] eal: fix list index for 256 byte element Ruifeng Wang
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Ruifeng Wang @ 2023-05-19 4:29 UTC (permalink / raw)
Cc: dev, anatoly.burakov, honnappa.nagarahalli, feifei.wang2, nd,
Ruifeng Wang
This series fixed a heap free list management issue which was captured
by unit test failure.
It also includes fixes of the unit test.
Ruifeng Wang (4):
eal: fix list index for 256 byte element
eal: simplify check condition
test/malloc: fix missing free
test/malloc: fix case expectation
app/test/test_malloc.c | 21 +++++++++++----------
lib/eal/common/malloc_elem.c | 2 +-
lib/eal/common/malloc_heap.c | 2 +-
3 files changed, 13 insertions(+), 12 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/4] eal: fix list index for 256 byte element
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
@ 2023-05-19 4:29 ` Ruifeng Wang
2023-05-19 11:10 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 2/4] eal: simplify check condition Ruifeng Wang
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Ruifeng Wang @ 2023-05-19 4:29 UTC (permalink / raw)
To: Anatoly Burakov, Fengnan Chang, Morten Brørup
Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, Ruifeng Wang, stable
Elements with 2^8B size should fall into index 1 of the list.
Fixes: f62f4a375ff4 ("malloc: optimize 4K allocations")
Cc: changfengnan@bytedance.com
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
---
lib/eal/common/malloc_elem.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/eal/common/malloc_elem.c b/lib/eal/common/malloc_elem.c
index 35a2313d04..619c040aa3 100644
--- a/lib/eal/common/malloc_elem.c
+++ b/lib/eal/common/malloc_elem.c
@@ -382,7 +382,7 @@ malloc_elem_free_list_index(size_t size)
size_t log2;
size_t index;
- if (size <= (1UL << MALLOC_MINSIZE_LOG2))
+ if (size < (1UL << MALLOC_MINSIZE_LOG2))
return 0;
/* Find next power of 2 > size. */
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/4] eal: simplify check condition
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
2023-05-19 4:29 ` [PATCH 1/4] eal: fix list index for 256 byte element Ruifeng Wang
@ 2023-05-19 4:29 ` Ruifeng Wang
2023-05-19 11:06 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 3/4] test/malloc: fix missing free Ruifeng Wang
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Ruifeng Wang @ 2023-05-19 4:29 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, Ruifeng Wang
The alt_elem is initialized to null. Checking only size hint flag is
sufficient to return a proper value.
Removed the redundant check.
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
---
lib/eal/common/malloc_heap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/eal/common/malloc_heap.c b/lib/eal/common/malloc_heap.c
index d25bdc98f9..fa709ac567 100644
--- a/lib/eal/common/malloc_heap.c
+++ b/lib/eal/common/malloc_heap.c
@@ -168,7 +168,7 @@ find_suitable_element(struct malloc_heap *heap, size_t size,
}
}
- if ((alt_elem != NULL) && (flags & RTE_MEMZONE_SIZE_HINT_ONLY))
+ if (flags & RTE_MEMZONE_SIZE_HINT_ONLY)
return alt_elem;
return NULL;
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/4] test/malloc: fix missing free
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
2023-05-19 4:29 ` [PATCH 1/4] eal: fix list index for 256 byte element Ruifeng Wang
2023-05-19 4:29 ` [PATCH 2/4] eal: simplify check condition Ruifeng Wang
@ 2023-05-19 4:29 ` Ruifeng Wang
2023-05-19 11:08 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 4/4] test/malloc: fix case expectation Ruifeng Wang
2023-06-05 16:06 ` [PATCH 0/4] Heap library and test case changes Thomas Monjalon
4 siblings, 1 reply; 10+ messages in thread
From: Ruifeng Wang @ 2023-05-19 4:29 UTC (permalink / raw)
To: Anatoly Burakov
Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, Ruifeng Wang, stable
Free the allocated buffer before returning.
Fixes: a40a1f8231b4 ("app: various tests update")
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
---
app/test/test_malloc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c
index de40e50611..f144b89d88 100644
--- a/app/test/test_malloc.c
+++ b/app/test/test_malloc.c
@@ -937,6 +937,7 @@ test_alloc_single_socket(int32_t socket)
if (mem == NULL)
return -1;
if (addr_to_socket(mem) != desired_socket) {
+ rte_free(mem);
return -1;
}
rte_free(mem);
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 4/4] test/malloc: fix case expectation
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
` (2 preceding siblings ...)
2023-05-19 4:29 ` [PATCH 3/4] test/malloc: fix missing free Ruifeng Wang
@ 2023-05-19 4:29 ` Ruifeng Wang
2023-05-19 11:07 ` Burakov, Anatoly
2023-06-05 16:06 ` [PATCH 0/4] Heap library and test case changes Thomas Monjalon
4 siblings, 1 reply; 10+ messages in thread
From: Ruifeng Wang @ 2023-05-19 4:29 UTC (permalink / raw)
To: Anatoly Burakov
Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, Ruifeng Wang, stable
The case expects all stats to be equal. Therefor the conditions
in check should be logically or'ed.
Fixes: a40a1f8231b4 ("app: various tests update")
Cc: stable@dpdk.org
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
---
app/test/test_malloc.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c
index f144b89d88..ff081dd931 100644
--- a/app/test/test_malloc.c
+++ b/app/test/test_malloc.c
@@ -302,11 +302,11 @@ test_multi_alloc_statistics(void)
rte_malloc_get_socket_stats(socket,&post_stats);
/* Check statistics reported are correct */
/* All post stats should be equal to pre stats after alloc freed */
- if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) &&
- (post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) &&
- (post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&&
- (post_stats.alloc_count!=pre_stats.alloc_count)&&
- (post_stats.free_count!=pre_stats.free_count)) {
+ if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) ||
+ (post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) ||
+ (post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) ||
+ (post_stats.alloc_count != pre_stats.alloc_count) ||
+ (post_stats.free_count != pre_stats.free_count)) {
printf("Malloc statistics are incorrect - freed alloc\n");
return -1;
}
@@ -363,11 +363,11 @@ test_multi_alloc_statistics(void)
return -1;
}
- if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) &&
- (post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) &&
- (post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&&
- (post_stats.alloc_count!=pre_stats.alloc_count)&&
- (post_stats.free_count!=pre_stats.free_count)) {
+ if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) ||
+ (post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) ||
+ (post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) ||
+ (post_stats.alloc_count != pre_stats.alloc_count) ||
+ (post_stats.free_count != pre_stats.free_count)) {
printf("Malloc statistics are incorrect - freed alloc\n");
return -1;
}
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/4] eal: simplify check condition
2023-05-19 4:29 ` [PATCH 2/4] eal: simplify check condition Ruifeng Wang
@ 2023-05-19 11:06 ` Burakov, Anatoly
0 siblings, 0 replies; 10+ messages in thread
From: Burakov, Anatoly @ 2023-05-19 11:06 UTC (permalink / raw)
To: Ruifeng Wang; +Cc: dev, honnappa.nagarahalli, feifei.wang2, nd
On 5/19/2023 5:29 AM, Ruifeng Wang wrote:
> The alt_elem is initialized to null. Checking only size hint flag is
> sufficient to return a proper value.
> Removed the redundant check.
>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 4/4] test/malloc: fix case expectation
2023-05-19 4:29 ` [PATCH 4/4] test/malloc: fix case expectation Ruifeng Wang
@ 2023-05-19 11:07 ` Burakov, Anatoly
0 siblings, 0 replies; 10+ messages in thread
From: Burakov, Anatoly @ 2023-05-19 11:07 UTC (permalink / raw)
To: Ruifeng Wang; +Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, stable
On 5/19/2023 5:29 AM, Ruifeng Wang wrote:
> The case expects all stats to be equal. Therefor the conditions
> in check should be logically or'ed.
>
> Fixes: a40a1f8231b4 ("app: various tests update")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] test/malloc: fix missing free
2023-05-19 4:29 ` [PATCH 3/4] test/malloc: fix missing free Ruifeng Wang
@ 2023-05-19 11:08 ` Burakov, Anatoly
0 siblings, 0 replies; 10+ messages in thread
From: Burakov, Anatoly @ 2023-05-19 11:08 UTC (permalink / raw)
To: Ruifeng Wang; +Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, stable
On 5/19/2023 5:29 AM, Ruifeng Wang wrote:
> Free the allocated buffer before returning.
>
> Fixes: a40a1f8231b4 ("app: various tests update")
> Cc: stable@dpdk.org
>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> Reviewed-by: Feifei Wang <feifei.wang2@arm.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/4] eal: fix list index for 256 byte element
2023-05-19 4:29 ` [PATCH 1/4] eal: fix list index for 256 byte element Ruifeng Wang
@ 2023-05-19 11:10 ` Burakov, Anatoly
0 siblings, 0 replies; 10+ messages in thread
From: Burakov, Anatoly @ 2023-05-19 11:10 UTC (permalink / raw)
To: Ruifeng Wang, Fengnan Chang, Morten Brørup
Cc: dev, honnappa.nagarahalli, feifei.wang2, nd, stable
On 5/19/2023 5:29 AM, Ruifeng Wang wrote:
> Elements with 2^8B size should fall into index 1 of the list.
>
> Fixes: f62f4a375ff4 ("malloc: optimize 4K allocations")
> Cc: changfengnan@bytedance.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
--
Thanks,
Anatoly
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] Heap library and test case changes
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
` (3 preceding siblings ...)
2023-05-19 4:29 ` [PATCH 4/4] test/malloc: fix case expectation Ruifeng Wang
@ 2023-06-05 16:06 ` Thomas Monjalon
4 siblings, 0 replies; 10+ messages in thread
From: Thomas Monjalon @ 2023-06-05 16:06 UTC (permalink / raw)
To: Ruifeng Wang; +Cc: dev, anatoly.burakov, honnappa.nagarahalli, feifei.wang2, nd
19/05/2023 06:29, Ruifeng Wang:
> This series fixed a heap free list management issue which was captured
> by unit test failure.
> It also includes fixes of the unit test.
>
> Ruifeng Wang (4):
> eal: fix list index for 256 byte element
> eal: simplify check condition
> test/malloc: fix missing free
> test/malloc: fix case expectation
Applied, thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-06-05 16:07 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-19 4:29 [PATCH 0/4] Heap library and test case changes Ruifeng Wang
2023-05-19 4:29 ` [PATCH 1/4] eal: fix list index for 256 byte element Ruifeng Wang
2023-05-19 11:10 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 2/4] eal: simplify check condition Ruifeng Wang
2023-05-19 11:06 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 3/4] test/malloc: fix missing free Ruifeng Wang
2023-05-19 11:08 ` Burakov, Anatoly
2023-05-19 4:29 ` [PATCH 4/4] test/malloc: fix case expectation Ruifeng Wang
2023-05-19 11:07 ` Burakov, Anatoly
2023-06-05 16:06 ` [PATCH 0/4] Heap library and test case changes Thomas Monjalon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).