Thank you – The rte_eal_init() function helped to resolve the compile error.
From: Suraj R Gupta [mailto:[email protected]] Sent: Wednesday, September 18, 2019 7:55 AM To: Arvind Narayanan <[email protected]> Cc: Tran (US), Katherine K <[email protected]>; Singh, Satish 1. (Nokia - IN/Bangalore) <[email protected]>; [email protected] 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 <[email protected]<mailto:[email protected]>> 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 <[email protected]<mailto:[email protected]>> 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:[email protected]<mailto:[email protected]>] Sent: Tuesday, September 17, 2019 4:33 PM To: Singh, Satish 1. (Nokia - IN/Bangalore) <[email protected]<mailto:[email protected]>> Cc: Tran (US), Katherine K <[email protected]<mailto:[email protected]>>; [email protected]<mailto:[email protected]> 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) <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> 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 <[email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>>> On Behalf Of Tran (US), Katherine K Sent: Tuesday, September 17, 2019 11:36 PM To: [email protected]<mailto:[email protected]><mailto:[email protected]<mailto:[email protected]>> 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
