DPDK patches and discussions
 help / color / mirror / Atom feed
* [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).