[dpdk-users] Help with mbuf and mempool
Tran (US), Katherine K
katherine.k.tran at boeing.com
Thu Sep 19 23:55:41 CEST 2019
Thank you – The rte_eal_init() function helped to resolve the compile error.
From: Suraj R Gupta [mailto:surajrgupta at iith.ac.in]
Sent: Wednesday, September 18, 2019 7:55 AM
To: Arvind Narayanan <webguru2688 at gmail.com>
Cc: Tran (US), Katherine K <katherine.k.tran at boeing.com>; Singh, Satish 1. (Nokia - IN/Bangalore) <satish.1.singh at nokia.com>; users at 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 at gmail.com<mailto:webguru2688 at 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 at boeing.com<mailto: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<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<mailto:satish.1.singh at nokia.com>>
Cc: Tran (US), Katherine K <katherine.k.tran at boeing.com<mailto:katherine.k.tran at boeing.com>>; users at dpdk.org<mailto: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><mailto: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><mailto: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><mailto: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
--
Thanks and Regards
Suraj R Gupta
More information about the users
mailing list