[dpdk-stable] patch 'malloc: check size hint when reserving the biggest element' has been queued to stable release 18.08.1

Kevin Traynor ktraynor at redhat.com
Fri Nov 23 11:26:07 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.08.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/29/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Kevin Traynor

---
>From ff9eeb07f14efddc9c69699855162133347beda7 Mon Sep 17 00:00:00 2001
From: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
Date: Sun, 7 Oct 2018 21:31:47 +0200
Subject: [PATCH] malloc: check size hint when reserving the biggest element

[ upstream commit c7810c319d5f70c7d3c1b878f9431dc17dc1b6bc ]

RTE_MEMZONE_SIZE_HINT_ONLY wasn't checked in any way,
causing size hints to be parsed as hard requirements.
This resulted in some allocations being failed prematurely.

Fixes: 68b6092bd3c7 ("malloc: allow reserving biggest element")

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov at intel.com>
---
 lib/librte_eal/common/malloc_heap.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
index ac7bbb3ba..d2a8bd8dc 100644
--- a/lib/librte_eal/common/malloc_heap.c
+++ b/lib/librte_eal/common/malloc_heap.c
@@ -166,5 +166,7 @@ find_biggest_element(struct malloc_heap *heap, size_t *size,
 				!!elem; elem = LIST_NEXT(elem, free_list)) {
 			size_t cur_size;
-			if (!check_hugepage_sz(flags, elem->msl->page_sz))
+			if ((flags & RTE_MEMZONE_SIZE_HINT_ONLY) == 0 &&
+					!check_hugepage_sz(flags,
+						elem->msl->page_sz))
 				continue;
 			if (contig) {
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-23 10:22:54.332184292 +0000
+++ 0003-malloc-check-size-hint-when-reserving-the-biggest-el.patch	2018-11-23 10:22:54.000000000 +0000
@@ -1,14 +1,15 @@
-From c7810c319d5f70c7d3c1b878f9431dc17dc1b6bc Mon Sep 17 00:00:00 2001
+From ff9eeb07f14efddc9c69699855162133347beda7 Mon Sep 17 00:00:00 2001
 From: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
 Date: Sun, 7 Oct 2018 21:31:47 +0200
 Subject: [PATCH] malloc: check size hint when reserving the biggest element
 
+[ upstream commit c7810c319d5f70c7d3c1b878f9431dc17dc1b6bc ]
+
 RTE_MEMZONE_SIZE_HINT_ONLY wasn't checked in any way,
 causing size hints to be parsed as hard requirements.
 This resulted in some allocations being failed prematurely.
 
 Fixes: 68b6092bd3c7 ("malloc: allow reserving biggest element")
-Cc: stable at dpdk.org
 
 Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk at intel.com>
 Reviewed-by: Anatoly Burakov <anatoly.burakov at intel.com>
@@ -17,10 +18,10 @@
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/lib/librte_eal/common/malloc_heap.c b/lib/librte_eal/common/malloc_heap.c
-index 08ec75377..363f306cc 100644
+index ac7bbb3ba..d2a8bd8dc 100644
 --- a/lib/librte_eal/common/malloc_heap.c
 +++ b/lib/librte_eal/common/malloc_heap.c
-@@ -193,5 +193,7 @@ find_biggest_element(struct malloc_heap *heap, size_t *size,
+@@ -166,5 +166,7 @@ find_biggest_element(struct malloc_heap *heap, size_t *size,
  				!!elem; elem = LIST_NEXT(elem, free_list)) {
  			size_t cur_size;
 -			if (!check_hugepage_sz(flags, elem->msl->page_sz))


More information about the stable mailing list