[dpdk-users] 'MBUF: error setting mempool handler'

David Aldrich david.aldrich.ntml at gmail.com
Fri Jun 5 18:20:57 CEST 2020


May I restate my problem please as there was an error in my original
message:

I am using some DPDK application code that worked with DPDK 2.2.0. I am
trying to port it to DPDK 18.08, running on Centos 7. The code gives error:

MBUF: error setting mempool handler

This error occurs in the call to rte_pktmbuf_pool_create() below:

    for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {

        if (rte_lcore_is_enabled(lcore_id) == 0)
            continue;

        iCpuSocket = rte_lcore_to_socket_id(lcore_id);

        if (iCpuSocket == SOCKET_ID_ANY)
            iCpuSocket = 0;

        // Preparing direct memory pool per Socket

        if (socket_direct_pool[iCpuSocket] == NULL)
        {
            mp = rte_pktmbuf_pool_create(   buf,
                                            NB_MBUF,
                                            32,
                                            0,
                                            RTE_MBUF_DEFAULT_BUF_SIZE,
                                            iCpuSocket);
            if (mp == NULL) {
                <print error>
                return -1;
            }
            socket_direct_pool[iCpuSocket] = mp;
        }

I don't know how to fix this. I have seen other people reporting this when
building the dpdk application code as a library (i.e. there were missing
symbols), but I am building directly as an executable.

Any suggestions please?

On Fri, Jun 5, 2020 at 10:43 AM David Aldrich <david.aldrich.ntml at gmail.com>
wrote:

> On Thu, 4 Jun 2020 17:50:18 +0100
>> David Aldrich <david.aldrich.ntml at gmail.com> wrote:
>>
>> <snip>
>>
>> You should not be using 8.08 is not a Long Term Stable release. It is not
>> supported.
>>
>>
> I'm using 18.08 LTS
>
>
>> You should be using rte_pktmbuf_pool_create() rather than
>> rte_mempool_create().
>> Lots has changed in the years since 2.2.0
>>
>
> Sorry, I made a mistake. The error:
>
> MBUF: error setting mempool handler
>
> occurs in:
>
> mp = rte_pktmbuf_pool_create(   buf,
>                                 NB_MBUF,
>                                 32,
>                                 0,
>                                 RTE_MBUF_DEFAULT_BUF_SIZE,
>                                 iCpuSocket);
>
> Any advice please?
>
> On Thu, Jun 4, 2020 at 6:23 PM Stephen Hemminger <
> stephen at networkplumber.org> wrote:
>
>> On Thu, 4 Jun 2020 17:50:18 +0100
>> David Aldrich <david.aldrich.ntml at gmail.com> wrote:
>>
>> > I am using some DPDK application code that worked with DPDK 2.2.0.  I am
>> > trying to port it to DPDK 18.08.  The code gives error:
>> >
>> > MBUF: error setting mempool handler
>> >
>> >
>> > I guess the app code that causes this is:
>> >
>> > ptRxQueInfo->pool = rte_mempool_create(buf,
>> > >                                nb_mbuf/2,
>> > >                                MBUF_SIZE,
>> > >                                0,
>> > >                                sizeof(struct
>> rte_pktmbuf_pool_private),
>> > >
>> > >                                rte_pktmbuf_pool_init,
>> > >                                NULL,
>> > >                                rte_pktmbuf_init,
>> > >                                NULL,
>> > >                                iCpuSocket,
>> > >                                0)
>> >
>> >
>> > I really don't know how to fix this. Any suggestions please?
>>
>> You should not be using 8.08 is not a Long Term Stable release. It is not
>> supported.
>>
>> You should be using rte_pktmbuf_pool_create() rather than
>> rte_mempool_create().
>> Lots has changed in the years since 2.2.0
>>
>>


More information about the users mailing list