[dpdk-dev] memzone: fix memzone size on reserving biggest memzone

Message ID 4b68272d7ef0d47ec64c5004a548eef04baa15db.1525362936.git.anatoly.burakov@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Anatoly Burakov May 3, 2018, 4 p.m. UTC
  Size of malloc heap elements include overhead, which sould not
be counted as part of memzone.

Fixes: fafcc11985a2 ("mem: rework memzone to be allocated by malloc")
Cc: stable@dpdk.org

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/common/eal_common_memzone.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Ananyev, Konstantin May 10, 2018, 3:47 p.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Anatoly Burakov
> Sent: Thursday, May 3, 2018 5:01 PM
> To: dev@dpdk.org
> Cc: stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] memzone: fix memzone size on reserving biggest memzone
> 
> Size of malloc heap elements include overhead, which sould not
> be counted as part of memzone.
> 
> Fixes: fafcc11985a2 ("mem: rework memzone to be allocated by malloc")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---

Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

>  lib/librte_eal/common/eal_common_memzone.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
> index bce3321..0595b3a 100644
> --- a/lib/librte_eal/common/eal_common_memzone.c
> +++ b/lib/librte_eal/common/eal_common_memzone.c
> @@ -213,7 +213,8 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
>  	snprintf(mz->name, sizeof(mz->name), "%s", name);
>  	mz->iova = rte_malloc_virt2iova(mz_addr);
>  	mz->addr = mz_addr;
> -	mz->len = (requested_len == 0 ? elem->size : requested_len);
> +	mz->len = (requested_len == 0 ?
> +			(elem->size - MALLOC_ELEM_OVERHEAD) : requested_len);
>  	mz->hugepage_sz = elem->msl->page_sz;
>  	mz->socket_id = elem->msl->socket_id;
>  	mz->flags = 0;
> --
> 2.7.4
  
Thomas Monjalon May 14, 2018, 12:04 a.m. UTC | #2
> > Size of malloc heap elements include overhead, which sould not
> > be counted as part of memzone.
> > 
> > Fixes: fafcc11985a2 ("mem: rework memzone to be allocated by malloc")
> > Cc: stable@dpdk.org
> > 
> > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>

Applied, thanks
  

Patch

diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
index bce3321..0595b3a 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -213,7 +213,8 @@  memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
 	snprintf(mz->name, sizeof(mz->name), "%s", name);
 	mz->iova = rte_malloc_virt2iova(mz_addr);
 	mz->addr = mz_addr;
-	mz->len = (requested_len == 0 ? elem->size : requested_len);
+	mz->len = (requested_len == 0 ?
+			(elem->size - MALLOC_ELEM_OVERHEAD) : requested_len);
 	mz->hugepage_sz = elem->msl->page_sz;
 	mz->socket_id = elem->msl->socket_id;
 	mz->flags = 0;