[dpdk-users] MBUF messed up between EAL and NON EAL threads

Neeraj Tandon (netandon) netandon at cisco.com
Wed May 31 05:28:50 CEST 2017


I am seeing an MBUF issue between two threads communicating using a Ring of MBUFs. I would appreciate if someone can tell if this is correct method to accomplish this:

1.       Master Core creates MBUF pool and a ring.

2.       An EAL Transmit thread polls this Ring

3.       A NON EAL threads allocates a MBUF from this pool and queues in the ring

4.       EAL Transmit thread deques and transmits the MBUF

Here is the issue I am seeing:
In NON EAL Thread where MBUF is allocated, the mbuf dump shows :
dump mbuf at 0x7f3b9339aa80, phys=11339ab00, buf_len=2176
  pkt_len=34, ol_flags=f0000000000000, nb_segs=1, in_port=1
  segment at 0x7f3b9339aa80, data=0x7f3b9339ab80, data_len=34

In Transmit thread on dequeuing;
dump mbuf at 0x7f3b9339ab00, phys=0, buf_len=0
  pkt_len=0, ol_flags=0, nb_segs=0, in_port=0

So mbuf address is messed up and none of the other values are good. Any idea, suggestion most welcome. Should I be only using EAL thread to send to Ring but that is highly limiting in design


More information about the users mailing list