[dpdk-dev] issues with packets bigger than 1500 bytes

Newman Poborsky newman555p at gmail.com
Tue Mar 31 15:33:49 CEST 2015


Hi again,

I tried setting MTU to larger value and I get really weird behaviour - statistics now show that there are no more errors, but after just a few minutes I get a segfault while calling rte_pktmbuf_free():
#0  0x00000000004202fc in rte_atomic16_add_return (v=0xffffffffffffff94, inc=-1) at /opt/dpdk-1.8.0/build/include/generic/rte_atomic.h:247
247             return __sync_add_and_fetch(&v->cnt, inc);
(gdb) bt
#0  0x00000000004202fc in rte_atomic16_add_return (v=0xffffffffffffff94, inc=-1) at /opt/dpdk-1.8.0/build/include/generic/rte_atomic.h:247
#1  0x0000000000420414 in rte_mbuf_refcnt_update (m=0xffffffffffffff80, value=-1) at /opt/dpdk-1.8.0/build/include/rte_mbuf.h:371
#2  0x00000000004205e4 in __rte_pktmbuf_prefree_seg (m=0x7f773ff1ce80) at /opt/dpdk-1.8.0/build/include/rte_mbuf.h:770
#3  rte_pktmbuf_free_seg (m=0x7f773ff1ce80) at /opt/dpdk-1.8.0/build/include/rte_mbuf.h:793
#4  rte_pktmbuf_free (m=0x7f773ff1ce80) at /opt/dpdk-1.8.0/build/include/rte_mbuf.h:816

Is there any reason why changing MTU would cause this?  

With packets smaller than 1500 bytes and standard MTU, application is stable and there are no problems with calls to rte_pktmbuf_free(). Application is also stable with packets larger than 1500 bytes and standard MTU, but as I said, there are a lot of received errors. 

BR,
Newman

On Mon, Mar 30, 2015 at 12:52:22PM +0200, Newman Poborsky wrote:
> Hi,
> 
> I'm having some problems with dpdk on links that have packets bigger
> than 1500bytes. Some packets that are receieved are around 4K, and
> some are 9k jumbo frames.
> 
> When using testpmd app, I can see a lot of RX-errors (both RX-missed and RX-badlen). When I set max packet length to 9000, RX-badlen counter stops increasing, but RX-missed still keeps growing.
> 
> What is the proper way to deal with jumbo frames?
> 
> I tried setting MTU to 9k, but this fails. From what I can see, you have to pass additional parameter to mp_init callback in rte_mempool_create(). Is this right?
> 
> I'm not sure should I just set max packet length (like in testpmd example app), or should I (also) set MTU? Is this actually related to the original problem of having a lot of RX-missed packets?
> 
> If I missed some documentation related to jumbo frames and MTU, I apologize, please point me to it.
> 
> Any help is appreciated.
> 
> Thank you,
> 
> Newman P.


More information about the dev mailing list