rte_pktmbuf_alloc( ) returns same mbuf address which is not freed
Stephen Hemminger
stephen at networkplumber.org
Thu Oct 27 19:34:58 CEST 2022
On Tue, 25 Oct 2022 14:11:26 +0530
Gokilavani A <gokilavanianbazhagan at gmail.com> wrote:
> Hi,
>
> We have been blocked by this issue.
>
> Can anyone help us to resolve the issue?
>
> Thanks
> Gokilavani A
>
> On Thu, Oct 13, 2022 at 4:39 PM Gokilavani A <gokilavanianbazhagan at gmail.com>
> wrote:
>
> > Hi,
> >
> >
> >
> > We are using *DPDK-19.11.11* for our application in which 4 construction
> > threads construct packets periodically, place it in a circular queue and
> >
> > a transmission thread pushes that packet by reading that circular queue.
> >
> >
> > In the long run, We are facing a crash in *eth_igb_xmit_pkts() *call
> > which is called during transmission.
> >
> >
> > After an inspect with GDB, we came to know that the non-freed mbuf address
> > is returned by* rte_pktmbuf_alloc() *for another packet during
> > construction, even though that mbuf is still not transmitted by the
> > transmission thread, which makes the corresponding construction thread to
> > update the same memory again.
> >
> >
> > It is not clear why rte_pktmbuf_alloc() returns the mbuf pointer before
> > that pointer is not getting freed by rte_eth_tx_burst() call?.
> >
> >
> > We have created the mempool using the call,
> >
> > *rte_pktmbuf_pool_create(txMemPoolName,
> > 16384,RTE_MEMPOOL_CACHE_MAX_SIZE,0, 2048
> > +RTE_PKTMBUF_HEADROOM, rte_eth_dev_socket_id(0));*
> >
> >
> > Please guide us in resolving this issue.
> >
> >
> >
> > Thanks,
> >
> > Gokilavani A
> >
> >
> >
Looks like an application bug.
Did you try building with every possible debug setting enabled.
Things like MBUF_DEBUG and the address sanitizier.
More information about the users
mailing list