[v2] examples/ip_reassembly: use pktmbuf to create pool

Message ID 1507814717-13306-1-git-send-email-hemant.agrawal@nxp.com
State New
Headers show
Series
  • [v2] examples/ip_reassembly: use pktmbuf to create pool
Related show

Commit Message

Hemant Agrawal Oct. 12, 2017, 1:25 p.m.
From: Ashish Jain <ashish.jain@nxp.com>


Use of rte_mempool_create() with the helper provided in
librte_mbuf: rte_pktmbuf_pool_create().
This is the preferred way to create a mbuf pool else
it may not work on implementation using the HW buffer pool

Signed-off-by: Ashish Jain <ashish.jain@nxp.com>

---
v2: add mempool caches - as suggested by Konstantin

 examples/ip_reassembly/main.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

-- 
2.7.4

Comments

Ananyev, Konstantin Oct. 12, 2017, 1:29 p.m. | #1
> -----Original Message-----

> From: Hemant Agrawal [mailto:hemant.agrawal@nxp.com]

> Sent: Thursday, October 12, 2017 2:25 PM

> To: dev@dpdk.org; Ananyev, Konstantin <konstantin.ananyev@intel.com>

> Subject: [PATCH v2] examples/ip_reassembly: use pktmbuf to create pool

> 

> From: Ashish Jain <ashish.jain@nxp.com>

> 

> Use of rte_mempool_create() with the helper provided in

> librte_mbuf: rte_pktmbuf_pool_create().

> This is the preferred way to create a mbuf pool else

> it may not work on implementation using the HW buffer pool

> 

> Signed-off-by: Ashish Jain <ashish.jain@nxp.com>

> ---

> v2: add mempool caches - as suggested by Konstantin

> 

>  examples/ip_reassembly/main.c | 14 +++++++-------

>  1 file changed, 7 insertions(+), 7 deletions(-)

> 

> diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c

> index cadf4c5..2f662ba 100644

> --- a/examples/ip_reassembly/main.c

> +++ b/examples/ip_reassembly/main.c

> @@ -84,10 +84,10 @@

>  #define MAX_JUMBO_PKT_LEN  9600

> 

>  #define	BUF_SIZE	RTE_MBUF_DEFAULT_DATAROOM

> -#define MBUF_SIZE	\

> -	(BUF_SIZE + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)

> +#define	MBUF_DATA_SIZE	RTE_MBUF_DEFAULT_BUF_SIZE

> 

>  #define NB_MBUF 8192

> +#define MEMPOOL_CACHE_SIZE 256

> 

>  /* allow max jumbo frame 9.5 KB */

>  #define JUMBO_FRAME_MAX_SIZE	0x2600

> @@ -909,11 +909,11 @@ setup_queue_tbl(struct rx_queue *rxq, uint32_t lcore, uint32_t queue)

> 

>  	snprintf(buf, sizeof(buf), "mbuf_pool_%u_%u", lcore, queue);

> 

> -	if ((rxq->pool = rte_mempool_create(buf, nb_mbuf, MBUF_SIZE, 0,

> -			sizeof(struct rte_pktmbuf_pool_private),

> -			rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,

> -			socket, MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET)) == NULL) {

> -		RTE_LOG(ERR, IP_RSMBL, "mempool_create(%s) failed", buf);

> +	rxq->pool = rte_pktmbuf_pool_create(buf, nb_mbuf, MEMPOOL_CACHE_SIZE, 0,

> +					    MBUF_DATA_SIZE, socket);

> +	if (rxq->pool == NULL) {

> +		RTE_LOG(ERR, IP_RSMBL,

> +			"rte_pktmbuf_pool_create(%s) failed", buf);

>  		return -1;

>  	}

> 

> --


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


> 2.7.4
Thomas Monjalon Oct. 13, 2017, 10:56 p.m. | #2
> > Use of rte_mempool_create() with the helper provided in

> > librte_mbuf: rte_pktmbuf_pool_create().

> > This is the preferred way to create a mbuf pool else

> > it may not work on implementation using the HW buffer pool

> > 

> > Signed-off-by: Ashish Jain <ashish.jain@nxp.com>

> 

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


Applied, thanks

Patch

diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c
index cadf4c5..2f662ba 100644
--- a/examples/ip_reassembly/main.c
+++ b/examples/ip_reassembly/main.c
@@ -84,10 +84,10 @@ 
 #define MAX_JUMBO_PKT_LEN  9600
 
 #define	BUF_SIZE	RTE_MBUF_DEFAULT_DATAROOM
-#define MBUF_SIZE	\
-	(BUF_SIZE + sizeof(struct rte_mbuf) + RTE_PKTMBUF_HEADROOM)
+#define	MBUF_DATA_SIZE	RTE_MBUF_DEFAULT_BUF_SIZE
 
 #define NB_MBUF 8192
+#define MEMPOOL_CACHE_SIZE 256
 
 /* allow max jumbo frame 9.5 KB */
 #define JUMBO_FRAME_MAX_SIZE	0x2600
@@ -909,11 +909,11 @@  setup_queue_tbl(struct rx_queue *rxq, uint32_t lcore, uint32_t queue)
 
 	snprintf(buf, sizeof(buf), "mbuf_pool_%u_%u", lcore, queue);
 
-	if ((rxq->pool = rte_mempool_create(buf, nb_mbuf, MBUF_SIZE, 0,
-			sizeof(struct rte_pktmbuf_pool_private),
-			rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
-			socket, MEMPOOL_F_SP_PUT | MEMPOOL_F_SC_GET)) == NULL) {
-		RTE_LOG(ERR, IP_RSMBL, "mempool_create(%s) failed", buf);
+	rxq->pool = rte_pktmbuf_pool_create(buf, nb_mbuf, MEMPOOL_CACHE_SIZE, 0,
+					    MBUF_DATA_SIZE, socket);
+	if (rxq->pool == NULL) {
+		RTE_LOG(ERR, IP_RSMBL,
+			"rte_pktmbuf_pool_create(%s) failed", buf);
 		return -1;
 	}