[dpdk-dev] Rx-errors with testpmd (only 75% line rate)

Michael Quicquaro michael.quicquaro at gmail.com
Mon Jan 27 21:00:56 CET 2014

I cannot thank you enough for this information.  This too was my main
problem.  I put a "small" unmeasured delay before the call to
rte_eth_rx_burst() and suddenly it starts returning bursts of 512 packets
vs. 4!!
Best Regards,

On Wed, Jan 22, 2014 at 9:52 AM, Dmitry Vyal <dmitryvyal at gmail.com> wrote:

> Hello MIchael,
> I suggest you to check average burst sizes on receive queues. Looks like I
> stumbled upon a similar issue several times. If you are calling
> rte_eth_rx_burst too frequently, NIC begins losing packets no matter how
> many CPU horse power you have (more you have, more it loses, actually). In
> my case this situation occured when average burst size is less than 20
> packets or so. I'm not sure what's the reason for this behavior, but I
> observed it on several applications on Intel 82599 10Gb cards.
> Regards, Dmitry
> On 01/09/2014 11:28 PM, Michael Quicquaro wrote:
>> Hello,
>> My hardware is a Dell PowerEdge R820:
>> 4x Intel Xeon E5-4620 2.20GHz 8 core
>> 16GB RDIMM 1333 MHz Dual Rank, x4 - Quantity 16
>> Intel X520 DP 10Gb DA/SFP+
>> So in summary 32 cores @ 2.20GHz and 256GB RAM
>> ... plenty of horsepower.
>> I've reserved 16 1GB Hugepages
>> I am configuring only one interface and using testpmd in rx_only mode to
>> first see if I can receive at line rate.
>> I am generating traffic on a different system which is running the netmap
>> pkt-gen program - generating 64 byte packets at close to line rate.
>> I am only able to receive approx. 75% of line rate and I see the Rx-errors
>> in the port stats going up proportionally.
>> I have verified that all receive queues are being used, but strangely
>> enough, it doesn't matter how many queues more than 2 that I use, the
>> throughput is the same.  I have verified with 'mpstat -P ALL' that all
>> specified cores are used.  The utilization of each core is only roughly
>> 25%.
>> Here is my command line:
>> testpmd -c 0xffffffff -n 4 -- --nb-ports=1 --coremask=0xfffffffe
>> --nb-cores=8 --rxd=2048 --txd=2048 --mbcache=512 --burst=512 --rxq=8
>> --txq=8 --interactive
>> What can I do to trace down this problem?  It seems very similar to a
>> thread on this list back in May titled "Best example for showing
>> throughput?" where no resolution was ever mentioned in the thread.
>> Thanks for any help.
>> - Michael

More information about the dev mailing list