[dpdk-users] Help with mbuf and mempool
Arvind Narayanan
webguru2688 at gmail.com
Wed Sep 18 16:36:51 CEST 2019
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 at 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 at iith.ac.in]
> Sent: Tuesday, September 17, 2019 4:33 PM
> To: Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh at nokia.com>
> Cc: Tran (US), Katherine K <katherine.k.tran at boeing.com>; users at 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 at nokia.com<mailto:satish.1.singh at 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 at dpdk.org<mailto:users-bounces at dpdk.org>> On
> Behalf Of Tran (US), Katherine K
> Sent: Tuesday, September 17, 2019 11:36 PM
> To: users at dpdk.org<mailto:users at 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
>
More information about the users
mailing list