All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: <dev@dpdk.org>
Cc: <jerin.jacob@caviumnetworks.com>, <olivier.matz@6wind.com>,
	<santosh.shukla@caviumnetworks.com>
Subject: [PATCH v4 4/7] mbuf: pktmbuf pool create helper for specific mempool ops
Date: Fri, 19 Jan 2018 22:03:56 +0530	[thread overview]
Message-ID: <1516379639-25586-5-git-send-email-hemant.agrawal@nxp.com> (raw)
In-Reply-To: <1516379639-25586-1-git-send-email-hemant.agrawal@nxp.com>

Introduce a new helper for pktmbuf pool, which will allow
the application to optionally specify the mempool ops name
as well.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 lib/librte_mbuf/rte_mbuf.c | 23 +++++++++++++++++------
 lib/librte_mbuf/rte_mbuf.h | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 6 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index 0c4d374..a256b42 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -149,15 +149,15 @@ rte_pktmbuf_init(struct rte_mempool *mp,
 	m->next = NULL;
 }
 
-/* helper to create a mbuf pool */
+/* Helper to create a mbuf pool with given mempool ops name*/
 struct rte_mempool *
-rte_pktmbuf_pool_create(const char *name, unsigned n,
-	unsigned cache_size, uint16_t priv_size, uint16_t data_room_size,
-	int socket_id)
+rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
+	unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size,
+	int socket_id, const char *ops_name)
 {
 	struct rte_mempool *mp;
 	struct rte_pktmbuf_pool_private mbp_priv;
-	const char *mp_ops_name;
+	const char *mp_ops_name = ops_name;
 	unsigned elt_size;
 	int ret;
 
@@ -177,7 +177,8 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,
 	if (mp == NULL)
 		return NULL;
 
-	mp_ops_name = rte_mbuf_best_mempool_ops();
+	if (mp_ops_name == NULL)
+		mp_ops_name = rte_mbuf_best_mempool_ops();
 	ret = rte_mempool_set_ops_byname(mp, mp_ops_name, NULL);
 	if (ret != 0) {
 		RTE_LOG(ERR, MBUF, "error setting mempool handler\n");
@@ -199,6 +200,16 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,
 	return mp;
 }
 
+/* helper to create a mbuf pool */
+struct rte_mempool *
+rte_pktmbuf_pool_create(const char *name, unsigned int n,
+	unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size,
+	int socket_id)
+{
+	return rte_pktmbuf_pool_create_by_ops(name, n, cache_size, priv_size,
+			data_room_size, socket_id, NULL);
+}
+
 /* do some sanity checks on a mbuf: panic if it fails */
 void
 rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index a594e47..e25b030 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1103,6 +1103,48 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,
 	int socket_id);
 
 /**
+ * Create a mbuf pool with a given mempool ops name
+ *
+ * This function creates and initializes a packet mbuf pool. It is
+ * a wrapper to rte_mempool functions.
+ *
+ * @param name
+ *   The name of the mbuf pool.
+ * @param n
+ *   The number of elements in the mbuf pool. The optimum size (in terms
+ *   of memory usage) for a mempool is when n is a power of two minus one:
+ *   n = (2^q - 1).
+ * @param cache_size
+ *   Size of the per-core object cache. See rte_mempool_create() for
+ *   details.
+ * @param priv_size
+ *   Size of application private are between the rte_mbuf structure
+ *   and the data buffer. This value must be aligned to RTE_MBUF_PRIV_ALIGN.
+ * @param data_room_size
+ *   Size of data buffer in each mbuf, including RTE_PKTMBUF_HEADROOM.
+ * @param socket_id
+ *   The socket identifier where the memory should be allocated. The
+ *   value can be *SOCKET_ID_ANY* if there is no NUMA constraint for the
+ *   reserved zone.
+ * @param ops_name
+ *   The mempool ops name to be used for this mempool instead of
+ *   default mempool. The value can be *NULL* to use default mempool.
+ * @return
+ *   The pointer to the new allocated mempool, on success. NULL on error
+ *   with rte_errno set appropriately. Possible rte_errno values include:
+ *    - E_RTE_NO_CONFIG - function could not get pointer to rte_config structure
+ *    - E_RTE_SECONDARY - function was called from a secondary process instance
+ *    - EINVAL - cache size provided is too large, or priv_size is not aligned.
+ *    - ENOSPC - the maximum number of memzones has already been allocated
+ *    - EEXIST - a memzone with the same name already exists
+ *    - ENOMEM - no appropriate memory area found in which to create memzone
+ */
+struct rte_mempool *
+rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
+	unsigned int cache_size, uint16_t priv_size, uint16_t data_room_size,
+	int socket_id, const char *ops_name);
+
+/**
  * Get the data room size of mbufs stored in a pktmbuf_pool
  *
  * The data room size is the amount of data that can be stored in a
-- 
2.7.4

  parent reply	other threads:[~2018-01-19 17:24 UTC|newest]

Thread overview: 112+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-04 12:22 [PATCH 0/2] Multiple Pktmbuf mempool support Hemant Agrawal
2017-07-04 12:22 ` [PATCH 1/2] mempool: check the support for the given mempool Hemant Agrawal
2017-07-04 12:22 ` [PATCH 2/2] mbuf: add support for preferred mempool list Hemant Agrawal
2017-09-22  7:13 ` [PATCH 0/2] Multiple Pktmbuf mempool support Hemant Agrawal
2017-09-25 10:24   ` Olivier MATZ
2017-10-10 14:15     ` Thomas Monjalon
2017-10-10 14:21       ` Hemant Agrawal
2017-12-15 10:24 ` [PATCH 0/2] Dynamic HW Mempool Detection Support Hemant Agrawal
2017-12-15 10:24   ` [PATCH 1/2] mbuf: update default Mempool ops with HW active pool Hemant Agrawal
2017-12-15 15:52     ` Stephen Hemminger
2017-12-18  9:26       ` Hemant Agrawal
2017-12-18  8:55     ` Jerin Jacob
2017-12-18  9:36       ` Hemant Agrawal
2017-12-22 14:59         ` Olivier MATZ
2017-12-28 12:07           ` Hemant Agrawal
2018-01-10 12:49             ` Hemant Agrawal
2017-12-22 14:41     ` Olivier MATZ
2017-12-15 10:24   ` [PATCH 2/2] dpaa2: register dpaa2 mempool ops as active mempool Hemant Agrawal
2017-12-18  8:57     ` Jerin Jacob
2017-12-18  9:25       ` Hemant Agrawal
2018-01-15  6:11   ` [PATCH v2 0/5] Dynamic HW Mempool Detection Support Hemant Agrawal
2018-01-15  6:11     ` [PATCH v2 1/5] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-15  6:11     ` [PATCH v2 2/5] eal: add platform mempool ops name in internal config Hemant Agrawal
2018-01-15 12:24       ` Jerin Jacob
2018-01-15 14:31         ` Hemant Agrawal
2018-01-15 16:26           ` Jerin Jacob
2018-01-16 15:04             ` Olivier Matz
2018-01-16 15:08               ` Jerin Jacob
2018-01-15  6:11     ` [PATCH v2 3/5] mbuf: support register mempool Hw ops name APIs Hemant Agrawal
2018-01-15 11:41       ` Jerin Jacob
2018-01-15 14:24         ` Hemant Agrawal
2018-01-15 14:37           ` Jerin Jacob
2018-01-15 12:36       ` Jerin Jacob
2018-01-16 15:09       ` Olivier Matz
2018-01-15  6:11     ` [PATCH v2 4/5] mbuf: pktmbuf pool create helper for specific mempool ops Hemant Agrawal
2018-01-15 12:31       ` Jerin Jacob
2018-01-15 14:32         ` Hemant Agrawal
2018-01-15  6:11     ` [PATCH v2 5/5] mbuf: add user command line config mempools ops API Hemant Agrawal
2018-01-15 12:29       ` Jerin Jacob
2018-01-15 14:35         ` Hemant Agrawal
2018-01-15 16:23           ` Jerin Jacob
2018-01-16 15:01     ` [PATCH v2 0/5] Dynamic HW Mempool Detection Support Olivier Matz
2018-01-18 11:47       ` Hemant Agrawal
2018-01-18 13:42         ` Olivier Matz
2018-01-18 13:26     ` [PATCH v3 0/7] " Hemant Agrawal
2018-01-18 13:26       ` [PATCH v3 1/7] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-19 10:01         ` Olivier Matz
2018-01-18 13:26       ` [PATCH v3 2/7] eal: add API to set user default mbuf mempool ops Hemant Agrawal
2018-01-19 10:01         ` Olivier Matz
2018-01-19 12:31           ` Hemant Agrawal
2018-01-19 12:43             ` Olivier Matz
2018-01-18 13:26       ` [PATCH v3 3/7] mbuf: add pool ops name selection API helpers Hemant Agrawal
2018-01-19 10:01         ` Olivier Matz
2018-01-19 12:41           ` Hemant Agrawal
2018-01-19 13:10             ` Olivier Matz
2018-01-18 13:26       ` [PATCH v3 4/7] mbuf: pktmbuf pool create helper for specific mempool ops Hemant Agrawal
2018-01-18 13:26       ` [PATCH v3 5/7] app/testpmd: set preferred mempool as default pktpool Hemant Agrawal
2018-01-19 10:01         ` Olivier Matz
2018-01-18 13:26       ` [PATCH v3 6/7] dpaa2: register dpaa2 as platform HW mempool on runtime Hemant Agrawal
2018-01-18 13:26       ` [PATCH v3 7/7] dpaa: register dpaa " Hemant Agrawal
2018-01-19 16:33       ` [PATCH v4 0/7] Dynamic HW Mempool Detection Support Hemant Agrawal
2018-01-19 16:33         ` [PATCH v4 1/7] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-19 16:33         ` [PATCH v4 2/7] mbuf: maintain user and compile time mempool ops name Hemant Agrawal
2018-01-19 16:33         ` [PATCH v4 3/7] mbuf: add pool ops name selection API helpers Hemant Agrawal
2018-01-19 16:33         ` Hemant Agrawal [this message]
2018-01-19 16:33         ` [PATCH v4 5/7] app/testpmd: set preferred mempool as default pktpool Hemant Agrawal
2018-01-19 16:33         ` [PATCH v4 6/7] dpaa: register dpaa as platform HW mempool on runtime Hemant Agrawal
2018-01-19 16:33         ` [PATCH v4 7/7] dpaa2: register dpaa2 " Hemant Agrawal
2018-01-20  6:15         ` [PATCH v5 0/7] Dynamic HW Mempool Detection Support Hemant Agrawal
2018-01-20  6:15           ` [PATCH v5 1/7] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-22 13:23             ` Olivier Matz
2018-01-22 13:24             ` Hemant Agrawal
2018-01-20  6:15           ` [PATCH v5 2/7] mbuf: maintain user and compile time mempool ops name Hemant Agrawal
2018-01-22 13:23             ` Olivier Matz
2018-01-20  6:15           ` [PATCH v5 3/7] mbuf: add pool ops name selection API helpers Hemant Agrawal
2018-01-22 13:23             ` Olivier Matz
2018-01-20  6:15           ` [PATCH v5 4/7] mbuf: pktmbuf pool create helper for specific mempool ops Hemant Agrawal
2018-01-22 13:24             ` Olivier Matz
2018-01-20  6:15           ` [PATCH v5 5/7] app/testpmd: set preferred mempool as default pktpool Hemant Agrawal
2018-01-22 13:25             ` Olivier Matz
2018-01-20  6:15           ` [PATCH v5 6/7] dpaa: register dpaa as platform HW mempool on runtime Hemant Agrawal
2018-01-20  6:15           ` [PATCH v5 7/7] dpaa2: register dpaa2 " Hemant Agrawal
2018-01-22 13:51           ` [PATCH v6 0/7] Dynamic HW Mempool Detection Support Hemant Agrawal
2018-01-22 13:51             ` [PATCH v6 1/7] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-22 14:43               ` santosh
2018-01-22 13:51             ` [PATCH v6 2/7] mbuf: maintain user and compile time mempool ops name Hemant Agrawal
2018-01-22 14:47               ` santosh
2018-01-25 22:02               ` Thomas Monjalon
2018-01-26  5:10                 ` Hemant Agrawal
2018-01-22 13:51             ` [PATCH v6 3/7] mbuf: add pool ops name selection API helpers Hemant Agrawal
2018-01-22 14:49               ` santosh
2018-01-25 22:01               ` Thomas Monjalon
2018-01-26  5:10                 ` Hemant Agrawal
2018-01-22 13:51             ` [PATCH v6 4/7] mbuf: pktmbuf pool create helper for specific mempool ops Hemant Agrawal
2018-01-22 14:51               ` santosh
2018-01-22 13:51             ` [PATCH v6 5/7] app/testpmd: set preferred mempool as default pktpool Hemant Agrawal
2018-01-22 14:52               ` santosh
2018-01-25 22:04               ` Thomas Monjalon
2018-01-26  5:11                 ` Hemant Agrawal
2018-01-26  7:43                   ` Thomas Monjalon
2018-01-22 13:51             ` [PATCH v6 6/7] dpaa: register dpaa as platform HW mempool on runtime Hemant Agrawal
2018-01-22 13:51             ` [PATCH v6 7/7] dpaa2: register dpaa2 " Hemant Agrawal
2018-01-29  8:10             ` [PATCH v7 0/7] Dynamic HW Mempool Detection Support Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 1/7] eal: prefix mbuf pool ops name with user defined Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 2/7] mbuf: maintain user and compile time mempool ops name Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 3/7] mbuf: add pool ops name selection API helpers Hemant Agrawal
2018-01-29  8:44                 ` Andrew Rybchenko
2018-01-29  8:10               ` [PATCH v7 4/7] mbuf: pktmbuf pool create helper for specific mempool ops Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 5/7] app/testpmd: add debug to print preferred " Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 6/7] dpaa: register dpaa as platform HW mempool on runtime Hemant Agrawal
2018-01-29  8:10               ` [PATCH v7 7/7] dpaa2: register dpaa2 " Hemant Agrawal
2018-01-29 18:03               ` [PATCH v7 0/7] Dynamic HW Mempool Detection Support Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1516379639-25586-5-git-send-email-hemant.agrawal@nxp.com \
    --to=hemant.agrawal@nxp.com \
    --cc=dev@dpdk.org \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=olivier.matz@6wind.com \
    --cc=santosh.shukla@caviumnetworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.