DPDK usage discussions
 help / color / mirror / Atom feed
* rte_pktmbuf_alloc( ) returns same mbuf address which is not freed
@ 2022-10-13 11:09 Gokilavani A
  2022-10-25  8:41 ` Gokilavani A
  0 siblings, 1 reply; 4+ messages in thread
From: Gokilavani A @ 2022-10-13 11:09 UTC (permalink / raw)
  To: users

[-- Attachment #1: Type: text/plain, Size: 1032 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 8421 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: rte_pktmbuf_alloc( ) returns same mbuf address which is not freed
  2022-10-13 11:09 rte_pktmbuf_alloc( ) returns same mbuf address which is not freed Gokilavani A
@ 2022-10-25  8:41 ` Gokilavani A
  2022-10-27 17:34   ` Stephen Hemminger
  2022-10-28 15:26   ` Stephen Hemminger
  0 siblings, 2 replies; 4+ messages in thread
From: Gokilavani A @ 2022-10-25  8:41 UTC (permalink / raw)
  To: users

[-- Attachment #1: Type: text/plain, Size: 1288 bytes --]

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@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
>
>
>

[-- Attachment #2: Type: text/html, Size: 8995 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: rte_pktmbuf_alloc( ) returns same mbuf address which is not freed
  2022-10-25  8:41 ` Gokilavani A
@ 2022-10-27 17:34   ` Stephen Hemminger
  2022-10-28 15:26   ` Stephen Hemminger
  1 sibling, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2022-10-27 17:34 UTC (permalink / raw)
  To: Gokilavani A; +Cc: users

On Tue, 25 Oct 2022 14:11:26 +0530
Gokilavani A <gokilavanianbazhagan@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@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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: rte_pktmbuf_alloc( ) returns same mbuf address which is not freed
  2022-10-25  8:41 ` Gokilavani A
  2022-10-27 17:34   ` Stephen Hemminger
@ 2022-10-28 15:26   ` Stephen Hemminger
  1 sibling, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2022-10-28 15:26 UTC (permalink / raw)
  To: Gokilavani A; +Cc: users

On Tue, 25 Oct 2022 14:11:26 +0530
Gokilavani A <gokilavanianbazhagan@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@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?.
> >

Off list discussion. This application was using m->next for private data.
Stop, this is not expected to work.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-10-28 15:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-13 11:09 rte_pktmbuf_alloc( ) returns same mbuf address which is not freed Gokilavani A
2022-10-25  8:41 ` Gokilavani A
2022-10-27 17:34   ` Stephen Hemminger
2022-10-28 15:26   ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).