On Tue, 25 Oct 2022 14:11:26 +0530 Gokilavani A <[email protected]> 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 <[email protected]> > 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.
