bus/fslmc: register platform HW mempool on runtime
authorHemant Agrawal <hemant.agrawal@nxp.com>
Mon, 29 Jan 2018 08:10:49 +0000 (13:40 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 29 Jan 2018 18:02:05 +0000 (19:02 +0100)
Detect if the DPAA2 mempool objects are present and register
it as platform default hw mempool

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
config/defconfig_arm64-dpaa2-linuxapp-gcc
drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
drivers/mempool/dpaa2/dpaa2_hw_mempool.c

index d38d696..5d4437c 100644 (file)
@@ -26,7 +26,6 @@ CONFIG_RTE_LIBRTE_VHOST_NUMA=n
 # Compile Support Libraries for DPAA2
 #
 CONFIG_RTE_LIBRTE_DPAA2_MEMPOOL=y
-CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="dpaa2"
 CONFIG_RTE_LIBRTE_DPAA2_USE_PHYS_IOVA=n
 
 #
index 139249c..1539739 100644 (file)
@@ -20,6 +20,7 @@
 #include <rte_kvargs.h>
 #include <rte_dev.h>
 #include <rte_ethdev_driver.h>
+#include <rte_mbuf_pool_ops.h>
 
 #include <fslmc_logs.h>
 #include <rte_fslmc.h>
@@ -38,6 +39,7 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 {
        struct dpaa2_dpbp_dev *dpbp_node;
        int ret;
+       static int register_once;
 
        /* Allocate DPAA2 dpbp handle */
        dpbp_node = rte_malloc(NULL, sizeof(struct dpaa2_dpbp_dev), 0);
@@ -74,6 +76,11 @@ dpaa2_create_dpbp_device(int vdev_fd __rte_unused,
 
        RTE_LOG(DEBUG, PMD, "DPAA2: Added [dpbp.%d]\n", dpbp_id);
 
+       if (!register_once) {
+               if (rte_mbuf_set_platform_mempool_ops(DPAA2_MEMPOOL_OPS_NAME))
+                       register_once = 1;
+       }
+
        return 0;
 }
 
index 9436d37..d421dbf 100644 (file)
@@ -44,6 +44,8 @@
 /* Maximum release/acquire from QBMAN */
 #define DPAA2_MBUF_MAX_ACQ_REL 7
 
+#define DPAA2_MEMPOOL_OPS_NAME         "dpaa2"
+
 #define MAX_BPID 256
 #define DPAA2_MBUF_HW_ANNOTATION       64
 #define DPAA2_FD_PTA_SIZE              0
index afda2c2..2bd62e8 100644 (file)
@@ -354,7 +354,7 @@ rte_hw_mbuf_get_count(const struct rte_mempool *mp)
 }
 
 struct rte_mempool_ops dpaa2_mpool_ops = {
-       .name = "dpaa2",
+       .name = DPAA2_MEMPOOL_OPS_NAME,
        .alloc = rte_hw_mbuf_create_pool,
        .free = rte_hw_mbuf_free_pool,
        .enqueue = rte_hw_mbuf_free_bulk,