[dpdk-dev] [PATCH 2/3] bus/dpaa: update dpaa mempool for secondary process

Hemant Agrawal hemant.agrawal at nxp.com
Tue Jun 25 12:40:18 CEST 2019


1. need to use the bpool with rte_malloc instead of rte_free
2. Option to give portal to the seondary process thread.

Signed-off-by: Radu Bulie <radu-andrei.bulie at nxp.com>
Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
Tested-by: Akhil Goyal <akhil.goyal at nxp.com>
---
 drivers/bus/dpaa/include/compat.h   | 10 ++++++----
 drivers/mempool/dpaa/dpaa_mempool.c | 11 ++++++++++-
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/bus/dpaa/include/compat.h b/drivers/bus/dpaa/include/compat.h
index 86cecf67b..277ce6369 100644
--- a/drivers/bus/dpaa/include/compat.h
+++ b/drivers/bus/dpaa/include/compat.h
@@ -2,6 +2,7 @@
  *
  * Copyright 2011 Freescale Semiconductor, Inc.
  * All rights reserved.
+ * Copyright 2019 NXP
  *
  */
 
@@ -40,6 +41,7 @@
 #include <rte_common.h>
 #include <rte_debug.h>
 #include <rte_cycles.h>
+#include <rte_malloc.h>
 
 /* The following definitions are primarily to allow the single-source driver
  * interfaces to be included by arbitrary program code. Ie. for interfaces that
@@ -339,12 +341,12 @@ static inline void copy_bytes(void *dest, const void *src, size_t sz)
 #endif
 
 /* Allocator stuff */
-#define kmalloc(sz, t)	malloc(sz)
-#define vmalloc(sz)	malloc(sz)
-#define kfree(p)	{ if (p) free(p); }
+#define kmalloc(sz, t)	rte_malloc(NULL, sz, 0)
+#define vmalloc(sz)	rte_malloc(NULL, sz, 0)
+#define kfree(p)	{ if (p) rte_free(p); }
 static inline void *kzalloc(size_t sz, gfp_t __foo __rte_unused)
 {
-	void *ptr = malloc(sz);
+	void *ptr = rte_malloc(NULL, sz, 0);
 
 	if (ptr)
 		memset(ptr, 0, sz);
diff --git a/drivers/mempool/dpaa/dpaa_mempool.c b/drivers/mempool/dpaa/dpaa_mempool.c
index 003081772..3551e6d10 100644
--- a/drivers/mempool/dpaa/dpaa_mempool.c
+++ b/drivers/mempool/dpaa/dpaa_mempool.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- *   Copyright 2017 NXP
+ *   Copyright 2017,2019 NXP
  *
  */
 
@@ -51,6 +51,15 @@ dpaa_mbuf_create_pool(struct rte_mempool *mp)
 
 	MEMPOOL_INIT_FUNC_TRACE();
 
+	if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
+		ret = rte_dpaa_portal_init((void *)0);
+		if (ret) {
+			DPAA_MEMPOOL_ERR(
+				"rte_dpaa_portal_init failed with ret: %d",
+				 ret);
+			return -1;
+		}
+	}
 	bp = bman_new_pool(&params);
 	if (!bp) {
 		DPAA_MEMPOOL_ERR("bman_new_pool() failed");
-- 
2.17.1



More information about the dev mailing list