* [dpdk-users] Help with mbuf and mempool @ 2019-09-17 18:05 Tran (US), Katherine K 2019-09-18 4:12 ` Singh, Satish 1. (Nokia - IN/Bangalore) 0 siblings, 1 reply; 7+ messages in thread From: Tran (US), Katherine K @ 2019-09-17 18:05 UTC (permalink / raw) To: users Hello, I am trying to allocate an mbuf to use for IP fragmentation. When instantiating a mempool using rte_pktmbuf_pool_create() function, I keep getting the following error message. Error Message: * MEMPOOL: Cannot allocate tailq entry! Will you please let me know what I am missing? Regards, Katie --------------- Code --------------------- #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <inttypes.h> #include <sys/types.h> #include <sys/param.h> #include <string.h> #include <sys/queue.h> #include <stdarg.h> #include <errno.h> #include <getopt.h> #include <rte_common.h> #include <rte_byteorder.h> #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> #include <rte_memzone.h> #include <rte_eal.h> #include <rte_per_lcore.h> #include <rte_launch.h> #include <rte_atomic.h> #include <rte_cycles.h> #include <rte_prefetch.h> #include <rte_lcore.h> #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> #include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> #include <rte_ethdev.h> #include <rte_ring.h> #include <rte_mempool.h> #include <rte_mbuf.h> #include <rte_lpm.h> #include <rte_lpm6.h> #include <rte_ip.h> #include <rte_string_fns.h> #include <rte_ip_frag.h> struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define AERO_FRAG_SIZE 1024 #define PATH_MAX 4096 //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; struct node_queue_conf *qconf; char buf[PATH_MAX]; struct rte_mempool *mp; struct rte_lpm *lpm; struct rte_lpm6 *lpm6; struct rte_lpm_config lpm_config; /*KT Readded*/ int socket; unsigned lcore_id; unsigned elt_size; lcore_id = 1; socket = rte_lcore_to_socket_id(lcore_id); if (rte_lcore_is_enabled(lcore_id) == 0) printf("RTE LCORE is enabled!"); socket = rte_lcore_to_socket_id(lcore_id); if (socket == SOCKET_ID_ANY) socket = 0; elt_size = sizeof(struct rte_mbuf) + (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, 0); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); /* if (socket_direct_pool[socket] == NULL) { RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket %i\n", socket); snprintf(buf, sizeof(buf), "pool_direct_%i", socket); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, AERO_FRAG_SIZE, socket); if (mp == NULL) { RTE_LOG(ERR, IP_FRAG, "Cannot create direct mempool\n"); return -1; } socket_direct_pool[socket] = mp; } */ //mbuf = rte_pktmbuf_alloc(mp); //fragment(mbuf, qconf); } ------------------------------------------ -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: fragment.c URL: <http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-17 18:05 [dpdk-users] Help with mbuf and mempool Tran (US), Katherine K @ 2019-09-18 4:12 ` Singh, Satish 1. (Nokia - IN/Bangalore) 2019-09-17 23:32 ` Suraj R Gupta 0 siblings, 1 reply; 7+ messages in thread From: Singh, Satish 1. (Nokia - IN/Bangalore) @ 2019-09-18 4:12 UTC (permalink / raw) To: Tran (US), Katherine K, users Hi, You are using Socket 0, and might be there is no memory in this socket or no memory left in this socket 0. Try with SOCKET_ID_ANY. Regards, SATISH SINGH -----Original Message----- From: users <users-bounces@dpdk.org> On Behalf Of Tran (US), Katherine K Sent: Tuesday, September 17, 2019 11:36 PM To: users@dpdk.org Subject: [dpdk-users] Help with mbuf and mempool Hello, I am trying to allocate an mbuf to use for IP fragmentation. When instantiating a mempool using rte_pktmbuf_pool_create() function, I keep getting the following error message. Error Message: * MEMPOOL: Cannot allocate tailq entry! Will you please let me know what I am missing? Regards, Katie --------------- Code --------------------- #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <inttypes.h> #include <sys/types.h> #include <sys/param.h> #include <string.h> #include <sys/queue.h> #include <stdarg.h> #include <errno.h> #include <getopt.h> #include <rte_common.h> #include <rte_byteorder.h> #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> #include <rte_memzone.h> #include <rte_eal.h> #include <rte_per_lcore.h> #include <rte_launch.h> #include <rte_atomic.h> #include <rte_cycles.h> #include <rte_prefetch.h> #include <rte_lcore.h> #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> #include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> #include <rte_ethdev.h> #include <rte_ring.h> #include <rte_mempool.h> #include <rte_mbuf.h> #include <rte_lpm.h> #include <rte_lpm6.h> #include <rte_ip.h> #include <rte_string_fns.h> #include <rte_ip_frag.h> struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define AERO_FRAG_SIZE 1024 #define PATH_MAX 4096 //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; struct node_queue_conf *qconf; char buf[PATH_MAX]; struct rte_mempool *mp; struct rte_lpm *lpm; struct rte_lpm6 *lpm6; struct rte_lpm_config lpm_config; /*KT Readded*/ int socket; unsigned lcore_id; unsigned elt_size; lcore_id = 1; socket = rte_lcore_to_socket_id(lcore_id); if (rte_lcore_is_enabled(lcore_id) == 0) printf("RTE LCORE is enabled!"); socket = rte_lcore_to_socket_id(lcore_id); if (socket == SOCKET_ID_ANY) socket = 0; elt_size = sizeof(struct rte_mbuf) + (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, 0); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); /* if (socket_direct_pool[socket] == NULL) { RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket %i\n", socket); snprintf(buf, sizeof(buf), "pool_direct_%i", socket); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, AERO_FRAG_SIZE, socket); if (mp == NULL) { RTE_LOG(ERR, IP_FRAG, "Cannot create direct mempool\n"); return -1; } socket_direct_pool[socket] = mp; } */ //mbuf = rte_pktmbuf_alloc(mp); //fragment(mbuf, qconf); } ------------------------------------------ -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: fragment.c URL: <http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-18 4:12 ` Singh, Satish 1. (Nokia - IN/Bangalore) @ 2019-09-17 23:32 ` Suraj R Gupta 2019-09-18 14:31 ` Tran (US), Katherine K 0 siblings, 1 reply; 7+ messages in thread From: Suraj R Gupta @ 2019-09-17 23:32 UTC (permalink / raw) To: Singh, Satish 1. (Nokia - IN/Bangalore); +Cc: Tran (US), Katherine K, users Make sure you have allocated hugepages before running the application On Wed, Sep 18, 2019 at 9:42 AM Singh, Satish 1. (Nokia - IN/Bangalore) < satish.1.singh@nokia.com> wrote: > Hi, > > You are using Socket 0, and might be there is no memory in this socket or > no memory left in this socket 0. Try with SOCKET_ID_ANY. > > Regards, > SATISH SINGH > > -----Original Message----- > From: users <users-bounces@dpdk.org> On Behalf Of Tran (US), Katherine K > Sent: Tuesday, September 17, 2019 11:36 PM > To: users@dpdk.org > Subject: [dpdk-users] Help with mbuf and mempool > > Hello, > > I am trying to allocate an mbuf to use for IP fragmentation. When > instantiating a mempool using rte_pktmbuf_pool_create() function, I keep > getting the following error message. > > Error Message: > * MEMPOOL: Cannot allocate tailq entry! > > Will you please let me know what I am missing? > > Regards, > Katie > > > --------------- Code --------------------- > > #include <stdio.h> > #include <stdlib.h> > #include <stdint.h> > #include <inttypes.h> > #include <sys/types.h> > #include <sys/param.h> > #include <string.h> > #include <sys/queue.h> > #include <stdarg.h> > #include <errno.h> > #include <getopt.h> > > #include <rte_common.h> > #include <rte_byteorder.h> > #include <rte_log.h> > #include <rte_memory.h> > #include <rte_memcpy.h> > #include <rte_memzone.h> > #include <rte_eal.h> > #include <rte_per_lcore.h> > #include <rte_launch.h> > #include <rte_atomic.h> > #include <rte_cycles.h> > #include <rte_prefetch.h> > #include <rte_lcore.h> > #include <rte_per_lcore.h> > #include <rte_branch_prediction.h> > #include <rte_interrupts.h> > #include <rte_pci.h> > #include <rte_random.h> > #include <rte_debug.h> > #include <rte_ether.h> > #include <rte_ethdev.h> > #include <rte_ring.h> > #include <rte_mempool.h> > #include <rte_mbuf.h> > #include <rte_lpm.h> > #include <rte_lpm6.h> > #include <rte_ip.h> > #include <rte_string_fns.h> > > #include <rte_ip_frag.h> > > struct rte_mempool *mempool = NULL; > #define NB_MBUF 8192 > #define AERO_FRAG_SIZE 1024 > #define PATH_MAX 4096 > > //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; > > int > main(int argc, char **argv) > { > > struct rte_mbuf *mbuf = NULL; > struct node_queue_conf *qconf; > > char buf[PATH_MAX]; > struct rte_mempool *mp; > struct rte_lpm *lpm; > struct rte_lpm6 *lpm6; > struct rte_lpm_config lpm_config; /*KT Readded*/ > int socket; > unsigned lcore_id; > > unsigned elt_size; > > lcore_id = 1; > socket = rte_lcore_to_socket_id(lcore_id); > > if (rte_lcore_is_enabled(lcore_id) == 0) > printf("RTE LCORE is enabled!"); > > socket = rte_lcore_to_socket_id(lcore_id); > if (socket == SOCKET_ID_ANY) > socket = 0; > > elt_size = sizeof(struct rte_mbuf) + > (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; > > //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, > RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, > 0); > > mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, > RTE_MBUF_DEFAULT_BUF_SIZE, socket); > > /* > if (socket_direct_pool[socket] == NULL) { > RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket > %i\n", > socket); > snprintf(buf, sizeof(buf), "pool_direct_%i", socket); > > mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, > 0, AERO_FRAG_SIZE, socket); > > if (mp == NULL) { > RTE_LOG(ERR, IP_FRAG, "Cannot create direct > mempool\n"); > return -1; > } > socket_direct_pool[socket] = mp; > > } > */ > //mbuf = rte_pktmbuf_alloc(mp); > > //fragment(mbuf, qconf); > > > } > > ------------------------------------------ > > > -------------- next part -------------- > An embedded and charset-unspecified text was scrubbed... > Name: fragment.c > URL: < > http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c > > > -- Thanks and Regards Suraj R Gupta ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-17 23:32 ` Suraj R Gupta @ 2019-09-18 14:31 ` Tran (US), Katherine K 2019-09-18 14:36 ` Arvind Narayanan 0 siblings, 1 reply; 7+ messages in thread From: Tran (US), Katherine K @ 2019-09-18 14:31 UTC (permalink / raw) To: Suraj R Gupta, Singh, Satish 1. (Nokia - IN/Bangalore); +Cc: users Hi, I have allocated hugepages. I still get the same error. I changed the code to the following but I still get the same error: ------------- Code --------------- struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define PATH_MAX 4096 int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; char buf[PATH_MAX]; struct rte_mempool *mp; int socket; socket = SOCKET_ID_ANY; mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); } regards, Katie From: Suraj R Gupta [mailto:surajrgupta@iith.ac.in] Sent: Tuesday, September 17, 2019 4:33 PM To: Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com> Cc: Tran (US), Katherine K <katherine.k.tran@boeing.com>; users@dpdk.org Subject: Re: [dpdk-users] Help with mbuf and mempool Make sure you have allocated hugepages before running the application On Wed, Sep 18, 2019 at 9:42 AM Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com>> wrote: Hi, You are using Socket 0, and might be there is no memory in this socket or no memory left in this socket 0. Try with SOCKET_ID_ANY. Regards, SATISH SINGH -----Original Message----- From: users <users-bounces@dpdk.org<mailto:users-bounces@dpdk.org>> On Behalf Of Tran (US), Katherine K Sent: Tuesday, September 17, 2019 11:36 PM To: users@dpdk.org<mailto:users@dpdk.org> Subject: [dpdk-users] Help with mbuf and mempool Hello, I am trying to allocate an mbuf to use for IP fragmentation. When instantiating a mempool using rte_pktmbuf_pool_create() function, I keep getting the following error message. Error Message: * MEMPOOL: Cannot allocate tailq entry! Will you please let me know what I am missing? Regards, Katie --------------- Code --------------------- #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <inttypes.h> #include <sys/types.h> #include <sys/param.h> #include <string.h> #include <sys/queue.h> #include <stdarg.h> #include <errno.h> #include <getopt.h> #include <rte_common.h> #include <rte_byteorder.h> #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> #include <rte_memzone.h> #include <rte_eal.h> #include <rte_per_lcore.h> #include <rte_launch.h> #include <rte_atomic.h> #include <rte_cycles.h> #include <rte_prefetch.h> #include <rte_lcore.h> #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> #include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> #include <rte_ethdev.h> #include <rte_ring.h> #include <rte_mempool.h> #include <rte_mbuf.h> #include <rte_lpm.h> #include <rte_lpm6.h> #include <rte_ip.h> #include <rte_string_fns.h> #include <rte_ip_frag.h> struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define AERO_FRAG_SIZE 1024 #define PATH_MAX 4096 //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; struct node_queue_conf *qconf; char buf[PATH_MAX]; struct rte_mempool *mp; struct rte_lpm *lpm; struct rte_lpm6 *lpm6; struct rte_lpm_config lpm_config; /*KT Readded*/ int socket; unsigned lcore_id; unsigned elt_size; lcore_id = 1; socket = rte_lcore_to_socket_id(lcore_id); if (rte_lcore_is_enabled(lcore_id) == 0) printf("RTE LCORE is enabled!"); socket = rte_lcore_to_socket_id(lcore_id); if (socket == SOCKET_ID_ANY) socket = 0; elt_size = sizeof(struct rte_mbuf) + (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, 0); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); /* if (socket_direct_pool[socket] == NULL) { RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket %i\n", socket); snprintf(buf, sizeof(buf), "pool_direct_%i", socket); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, AERO_FRAG_SIZE, socket); if (mp == NULL) { RTE_LOG(ERR, IP_FRAG, "Cannot create direct mempool\n"); return -1; } socket_direct_pool[socket] = mp; } */ //mbuf = rte_pktmbuf_alloc(mp); //fragment(mbuf, qconf); } ------------------------------------------ -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: fragment.c URL: <http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c> -- Thanks and Regards Suraj R Gupta ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-18 14:31 ` Tran (US), Katherine K @ 2019-09-18 14:36 ` Arvind Narayanan 2019-09-18 14:55 ` Suraj R Gupta 0 siblings, 1 reply; 7+ messages in thread From: Arvind Narayanan @ 2019-09-18 14:36 UTC (permalink / raw) To: Tran (US), Katherine K Cc: Suraj R Gupta, Singh, Satish 1. (Nokia - IN/Bangalore), users Not sure, did you try to initialize the EAL first before creating mempool, etc.? rte_eal_init() <https://doc.dpdk.org/api/rte__eal_8h.html#a5c3f4dddc25e38c5a186ecd8a69260e3> Arvind On Wed, Sep 18, 2019 at 9:31 AM Tran (US), Katherine K < katherine.k.tran@boeing.com> wrote: > Hi, > > I have allocated hugepages. I still get the same error. > > I changed the code to the following but I still get the same error: > > ------------- Code --------------- > > struct rte_mempool *mempool = NULL; > #define NB_MBUF 8192 > #define PATH_MAX 4096 > > int > main(int argc, char **argv) > { > > struct rte_mbuf *mbuf = NULL; > char buf[PATH_MAX]; > struct rte_mempool *mp; > int socket; > > socket = SOCKET_ID_ANY; > mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, > RTE_MBUF_DEFAULT_BUF_SIZE, socket); > > } > > regards, > Katie > > From: Suraj R Gupta [mailto:surajrgupta@iith.ac.in] > Sent: Tuesday, September 17, 2019 4:33 PM > To: Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com> > Cc: Tran (US), Katherine K <katherine.k.tran@boeing.com>; users@dpdk.org > Subject: Re: [dpdk-users] Help with mbuf and mempool > > Make sure you have allocated hugepages before running the application > > On Wed, Sep 18, 2019 at 9:42 AM Singh, Satish 1. (Nokia - IN/Bangalore) < > satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com>> wrote: > Hi, > > You are using Socket 0, and might be there is no memory in this socket or > no memory left in this socket 0. Try with SOCKET_ID_ANY. > > Regards, > SATISH SINGH > > -----Original Message----- > From: users <users-bounces@dpdk.org<mailto:users-bounces@dpdk.org>> On > Behalf Of Tran (US), Katherine K > Sent: Tuesday, September 17, 2019 11:36 PM > To: users@dpdk.org<mailto:users@dpdk.org> > Subject: [dpdk-users] Help with mbuf and mempool > > Hello, > > I am trying to allocate an mbuf to use for IP fragmentation. When > instantiating a mempool using rte_pktmbuf_pool_create() function, I keep > getting the following error message. > > Error Message: > * MEMPOOL: Cannot allocate tailq entry! > > Will you please let me know what I am missing? > > Regards, > Katie > > > --------------- Code --------------------- > > #include <stdio.h> > #include <stdlib.h> > #include <stdint.h> > #include <inttypes.h> > #include <sys/types.h> > #include <sys/param.h> > #include <string.h> > #include <sys/queue.h> > #include <stdarg.h> > #include <errno.h> > #include <getopt.h> > > #include <rte_common.h> > #include <rte_byteorder.h> > #include <rte_log.h> > #include <rte_memory.h> > #include <rte_memcpy.h> > #include <rte_memzone.h> > #include <rte_eal.h> > #include <rte_per_lcore.h> > #include <rte_launch.h> > #include <rte_atomic.h> > #include <rte_cycles.h> > #include <rte_prefetch.h> > #include <rte_lcore.h> > #include <rte_per_lcore.h> > #include <rte_branch_prediction.h> > #include <rte_interrupts.h> > #include <rte_pci.h> > #include <rte_random.h> > #include <rte_debug.h> > #include <rte_ether.h> > #include <rte_ethdev.h> > #include <rte_ring.h> > #include <rte_mempool.h> > #include <rte_mbuf.h> > #include <rte_lpm.h> > #include <rte_lpm6.h> > #include <rte_ip.h> > #include <rte_string_fns.h> > > #include <rte_ip_frag.h> > > struct rte_mempool *mempool = NULL; > #define NB_MBUF 8192 > #define AERO_FRAG_SIZE 1024 > #define PATH_MAX 4096 > > //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; > > int > main(int argc, char **argv) > { > > struct rte_mbuf *mbuf = NULL; > struct node_queue_conf *qconf; > > char buf[PATH_MAX]; > struct rte_mempool *mp; > struct rte_lpm *lpm; > struct rte_lpm6 *lpm6; > struct rte_lpm_config lpm_config; /*KT Readded*/ > int socket; > unsigned lcore_id; > > unsigned elt_size; > > lcore_id = 1; > socket = rte_lcore_to_socket_id(lcore_id); > > if (rte_lcore_is_enabled(lcore_id) == 0) > printf("RTE LCORE is enabled!"); > > socket = rte_lcore_to_socket_id(lcore_id); > if (socket == SOCKET_ID_ANY) > socket = 0; > > elt_size = sizeof(struct rte_mbuf) + > (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; > > //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, > RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, > 0); > > mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, > RTE_MBUF_DEFAULT_BUF_SIZE, socket); > > /* > if (socket_direct_pool[socket] == NULL) { > RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket > %i\n", > socket); > snprintf(buf, sizeof(buf), "pool_direct_%i", socket); > > mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, > 0, AERO_FRAG_SIZE, socket); > > if (mp == NULL) { > RTE_LOG(ERR, IP_FRAG, "Cannot create direct > mempool\n"); > return -1; > } > socket_direct_pool[socket] = mp; > > } > */ > //mbuf = rte_pktmbuf_alloc(mp); > > //fragment(mbuf, qconf); > > > } > > ------------------------------------------ > > > -------------- next part -------------- > An embedded and charset-unspecified text was scrubbed... > Name: fragment.c > URL: < > http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c > > > > > -- > Thanks and Regards > Suraj R Gupta > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-18 14:36 ` Arvind Narayanan @ 2019-09-18 14:55 ` Suraj R Gupta 2019-09-19 21:55 ` Tran (US), Katherine K 0 siblings, 1 reply; 7+ messages in thread From: Suraj R Gupta @ 2019-09-18 14:55 UTC (permalink / raw) To: Arvind Narayanan Cc: Tran (US), Katherine K, Singh, Satish 1. (Nokia - IN/Bangalore), users Also char buf[PATH_MAX] is not initialised or assigned any value. Assign a name to it. The PATH_MAX need not be 4096, use a lesser value say 100. On Wed, Sep 18, 2019 at 8:07 PM Arvind Narayanan <webguru2688@gmail.com> wrote: > Not sure, did you try to initialize the EAL first before creating mempool, > etc.? > rte_eal_init() > <https://doc.dpdk.org/api/rte__eal_8h.html#a5c3f4dddc25e38c5a186ecd8a69260e3> > > Arvind > > > On Wed, Sep 18, 2019 at 9:31 AM Tran (US), Katherine K < > katherine.k.tran@boeing.com> wrote: > >> Hi, >> >> I have allocated hugepages. I still get the same error. >> >> I changed the code to the following but I still get the same error: >> >> ------------- Code --------------- >> >> struct rte_mempool *mempool = NULL; >> #define NB_MBUF 8192 >> #define PATH_MAX 4096 >> >> int >> main(int argc, char **argv) >> { >> >> struct rte_mbuf *mbuf = NULL; >> char buf[PATH_MAX]; >> struct rte_mempool *mp; >> int socket; >> >> socket = SOCKET_ID_ANY; >> mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, >> RTE_MBUF_DEFAULT_BUF_SIZE, socket); >> >> } >> >> regards, >> Katie >> >> From: Suraj R Gupta [mailto:surajrgupta@iith.ac.in] >> Sent: Tuesday, September 17, 2019 4:33 PM >> To: Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com> >> Cc: Tran (US), Katherine K <katherine.k.tran@boeing.com>; users@dpdk.org >> Subject: Re: [dpdk-users] Help with mbuf and mempool >> >> Make sure you have allocated hugepages before running the application >> >> On Wed, Sep 18, 2019 at 9:42 AM Singh, Satish 1. (Nokia - IN/Bangalore) < >> satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com>> wrote: >> Hi, >> >> You are using Socket 0, and might be there is no memory in this socket or >> no memory left in this socket 0. Try with SOCKET_ID_ANY. >> >> Regards, >> SATISH SINGH >> >> -----Original Message----- >> From: users <users-bounces@dpdk.org<mailto:users-bounces@dpdk.org>> On >> Behalf Of Tran (US), Katherine K >> Sent: Tuesday, September 17, 2019 11:36 PM >> To: users@dpdk.org<mailto:users@dpdk.org> >> Subject: [dpdk-users] Help with mbuf and mempool >> >> Hello, >> >> I am trying to allocate an mbuf to use for IP fragmentation. When >> instantiating a mempool using rte_pktmbuf_pool_create() function, I keep >> getting the following error message. >> >> Error Message: >> * MEMPOOL: Cannot allocate tailq entry! >> >> Will you please let me know what I am missing? >> >> Regards, >> Katie >> >> >> --------------- Code --------------------- >> >> #include <stdio.h> >> #include <stdlib.h> >> #include <stdint.h> >> #include <inttypes.h> >> #include <sys/types.h> >> #include <sys/param.h> >> #include <string.h> >> #include <sys/queue.h> >> #include <stdarg.h> >> #include <errno.h> >> #include <getopt.h> >> >> #include <rte_common.h> >> #include <rte_byteorder.h> >> #include <rte_log.h> >> #include <rte_memory.h> >> #include <rte_memcpy.h> >> #include <rte_memzone.h> >> #include <rte_eal.h> >> #include <rte_per_lcore.h> >> #include <rte_launch.h> >> #include <rte_atomic.h> >> #include <rte_cycles.h> >> #include <rte_prefetch.h> >> #include <rte_lcore.h> >> #include <rte_per_lcore.h> >> #include <rte_branch_prediction.h> >> #include <rte_interrupts.h> >> #include <rte_pci.h> >> #include <rte_random.h> >> #include <rte_debug.h> >> #include <rte_ether.h> >> #include <rte_ethdev.h> >> #include <rte_ring.h> >> #include <rte_mempool.h> >> #include <rte_mbuf.h> >> #include <rte_lpm.h> >> #include <rte_lpm6.h> >> #include <rte_ip.h> >> #include <rte_string_fns.h> >> >> #include <rte_ip_frag.h> >> >> struct rte_mempool *mempool = NULL; >> #define NB_MBUF 8192 >> #define AERO_FRAG_SIZE 1024 >> #define PATH_MAX 4096 >> >> //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; >> >> int >> main(int argc, char **argv) >> { >> >> struct rte_mbuf *mbuf = NULL; >> struct node_queue_conf *qconf; >> >> char buf[PATH_MAX]; >> struct rte_mempool *mp; >> struct rte_lpm *lpm; >> struct rte_lpm6 *lpm6; >> struct rte_lpm_config lpm_config; /*KT Readded*/ >> int socket; >> unsigned lcore_id; >> >> unsigned elt_size; >> >> lcore_id = 1; >> socket = rte_lcore_to_socket_id(lcore_id); >> >> if (rte_lcore_is_enabled(lcore_id) == 0) >> printf("RTE LCORE is enabled!"); >> >> socket = rte_lcore_to_socket_id(lcore_id); >> if (socket == SOCKET_ID_ANY) >> socket = 0; >> >> elt_size = sizeof(struct rte_mbuf) + >> (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; >> >> //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, >> RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, >> 0); >> >> mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, >> RTE_MBUF_DEFAULT_BUF_SIZE, socket); >> >> /* >> if (socket_direct_pool[socket] == NULL) { >> RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket >> %i\n", >> socket); >> snprintf(buf, sizeof(buf), "pool_direct_%i", socket); >> >> mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, >> 0, AERO_FRAG_SIZE, socket); >> >> if (mp == NULL) { >> RTE_LOG(ERR, IP_FRAG, "Cannot create direct >> mempool\n"); >> return -1; >> } >> socket_direct_pool[socket] = mp; >> >> } >> */ >> //mbuf = rte_pktmbuf_alloc(mp); >> >> //fragment(mbuf, qconf); >> >> >> } >> >> ------------------------------------------ >> >> >> -------------- next part -------------- >> An embedded and charset-unspecified text was scrubbed... >> Name: fragment.c >> URL: < >> http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c >> > >> >> >> -- >> Thanks and Regards >> Suraj R Gupta >> > -- Thanks and Regards Suraj R Gupta ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-users] Help with mbuf and mempool 2019-09-18 14:55 ` Suraj R Gupta @ 2019-09-19 21:55 ` Tran (US), Katherine K 0 siblings, 0 replies; 7+ messages in thread From: Tran (US), Katherine K @ 2019-09-19 21:55 UTC (permalink / raw) To: Suraj R Gupta, Arvind Narayanan Cc: Singh, Satish 1. (Nokia - IN/Bangalore), users Thank you – The rte_eal_init() function helped to resolve the compile error. From: Suraj R Gupta [mailto:surajrgupta@iith.ac.in] Sent: Wednesday, September 18, 2019 7:55 AM To: Arvind Narayanan <webguru2688@gmail.com> Cc: Tran (US), Katherine K <katherine.k.tran@boeing.com>; Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com>; users@dpdk.org Subject: Re: [dpdk-users] Help with mbuf and mempool Also char buf[PATH_MAX] is not initialised or assigned any value. Assign a name to it. The PATH_MAX need not be 4096, use a lesser value say 100. On Wed, Sep 18, 2019 at 8:07 PM Arvind Narayanan <webguru2688@gmail.com<mailto:webguru2688@gmail.com>> wrote: Not sure, did you try to initialize the EAL first before creating mempool, etc.? rte_eal_init()<https://doc.dpdk.org/api/rte__eal_8h.html#a5c3f4dddc25e38c5a186ecd8a69260e3> Arvind On Wed, Sep 18, 2019 at 9:31 AM Tran (US), Katherine K <katherine.k.tran@boeing.com<mailto:katherine.k.tran@boeing.com>> wrote: Hi, I have allocated hugepages. I still get the same error. I changed the code to the following but I still get the same error: ------------- Code --------------- struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define PATH_MAX 4096 int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; char buf[PATH_MAX]; struct rte_mempool *mp; int socket; socket = SOCKET_ID_ANY; mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); } regards, Katie From: Suraj R Gupta [mailto:surajrgupta@iith.ac.in<mailto:surajrgupta@iith.ac.in>] Sent: Tuesday, September 17, 2019 4:33 PM To: Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com>> Cc: Tran (US), Katherine K <katherine.k.tran@boeing.com<mailto:katherine.k.tran@boeing.com>>; users@dpdk.org<mailto:users@dpdk.org> Subject: Re: [dpdk-users] Help with mbuf and mempool Make sure you have allocated hugepages before running the application On Wed, Sep 18, 2019 at 9:42 AM Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com><mailto:satish.1.singh@nokia.com<mailto:satish.1.singh@nokia.com>>> wrote: Hi, You are using Socket 0, and might be there is no memory in this socket or no memory left in this socket 0. Try with SOCKET_ID_ANY. Regards, SATISH SINGH -----Original Message----- From: users <users-bounces@dpdk.org<mailto:users-bounces@dpdk.org><mailto:users-bounces@dpdk.org<mailto:users-bounces@dpdk.org>>> On Behalf Of Tran (US), Katherine K Sent: Tuesday, September 17, 2019 11:36 PM To: users@dpdk.org<mailto:users@dpdk.org><mailto:users@dpdk.org<mailto:users@dpdk.org>> Subject: [dpdk-users] Help with mbuf and mempool Hello, I am trying to allocate an mbuf to use for IP fragmentation. When instantiating a mempool using rte_pktmbuf_pool_create() function, I keep getting the following error message. Error Message: * MEMPOOL: Cannot allocate tailq entry! Will you please let me know what I am missing? Regards, Katie --------------- Code --------------------- #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <inttypes.h> #include <sys/types.h> #include <sys/param.h> #include <string.h> #include <sys/queue.h> #include <stdarg.h> #include <errno.h> #include <getopt.h> #include <rte_common.h> #include <rte_byteorder.h> #include <rte_log.h> #include <rte_memory.h> #include <rte_memcpy.h> #include <rte_memzone.h> #include <rte_eal.h> #include <rte_per_lcore.h> #include <rte_launch.h> #include <rte_atomic.h> #include <rte_cycles.h> #include <rte_prefetch.h> #include <rte_lcore.h> #include <rte_per_lcore.h> #include <rte_branch_prediction.h> #include <rte_interrupts.h> #include <rte_pci.h> #include <rte_random.h> #include <rte_debug.h> #include <rte_ether.h> #include <rte_ethdev.h> #include <rte_ring.h> #include <rte_mempool.h> #include <rte_mbuf.h> #include <rte_lpm.h> #include <rte_lpm6.h> #include <rte_ip.h> #include <rte_string_fns.h> #include <rte_ip_frag.h> struct rte_mempool *mempool = NULL; #define NB_MBUF 8192 #define AERO_FRAG_SIZE 1024 #define PATH_MAX 4096 //static struct rte_mempool *socket_direct_pool[RTE_MAX_NUMA_NODES]; int main(int argc, char **argv) { struct rte_mbuf *mbuf = NULL; struct node_queue_conf *qconf; char buf[PATH_MAX]; struct rte_mempool *mp; struct rte_lpm *lpm; struct rte_lpm6 *lpm6; struct rte_lpm_config lpm_config; /*KT Readded*/ int socket; unsigned lcore_id; unsigned elt_size; lcore_id = 1; socket = rte_lcore_to_socket_id(lcore_id); if (rte_lcore_is_enabled(lcore_id) == 0) printf("RTE LCORE is enabled!"); socket = rte_lcore_to_socket_id(lcore_id); if (socket == SOCKET_ID_ANY) socket = 0; elt_size = sizeof(struct rte_mbuf) + (unsigned)RTE_MBUF_DEFAULT_BUF_SIZE; //mp = rte_mempool_create_empty(buf, NB_MBUF, elt_size, RTE_MBUF_DEFAULT_BUF_SIZE, sizeof(struct rte_pktmbuf_pool_private), socket, 0); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, RTE_MBUF_DEFAULT_BUF_SIZE, socket); /* if (socket_direct_pool[socket] == NULL) { RTE_LOG(INFO, IP_FRAG, "Creating direct mempool on socket %i\n", socket); snprintf(buf, sizeof(buf), "pool_direct_%i", socket); mp = rte_pktmbuf_pool_create(buf, NB_MBUF, 32, 0, AERO_FRAG_SIZE, socket); if (mp == NULL) { RTE_LOG(ERR, IP_FRAG, "Cannot create direct mempool\n"); return -1; } socket_direct_pool[socket] = mp; } */ //mbuf = rte_pktmbuf_alloc(mp); //fragment(mbuf, qconf); } ------------------------------------------ -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: fragment.c URL: <http://mails.dpdk.org/archives/users/attachments/20190917/3e7f791b/attachment.c> -- Thanks and Regards Suraj R Gupta -- Thanks and Regards Suraj R Gupta ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-09-19 21:55 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-09-17 18:05 [dpdk-users] Help with mbuf and mempool Tran (US), Katherine K 2019-09-18 4:12 ` Singh, Satish 1. (Nokia - IN/Bangalore) 2019-09-17 23:32 ` Suraj R Gupta 2019-09-18 14:31 ` Tran (US), Katherine K 2019-09-18 14:36 ` Arvind Narayanan 2019-09-18 14:55 ` Suraj R Gupta 2019-09-19 21:55 ` Tran (US), Katherine K
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).