[dpdk-users] rte_eth_stats counters

Gerry Wan gerryw at stanford.edu
Thu Sep 17 05:42:20 CEST 2020


Hi,

I'm testing out the maximum RX throughput my application can handle and am
using rte_eth_stats_get() to measure the point at which RX packets start
getting dropped. I have a traffic generator directly connected to my RX
port.

I've noticed that imissed is the number of packets that are dropped due to
hardware queue fulls, while ipackets is the number of packets successfully
received and agrees with the total number of packets retrieved from calls
to rte_eth_rx_burst(). I'm not sure exactly what ierrors is supposed to
count, but so far I have not seen this go beyond 0?

I have been interpreting the sum of (ipackets + imissed + ierrors) = itotal
as the total number of packets hitting the port. However, I've noticed that
when throughput gets too high, imissed will remain 0 while itotal is
smaller than the number of packets sent by the traffic generator. I've
ruled out connection issues because increasing the number of RSS queues
seems to fix the problem (up to a certain threshold before itotal again
becomes smaller than the number sent), but I don't understand why. If it is
not dropped in HW because the queues are full (since imissed = 0), where
are the packets being dropped and is there a way I can count these?

I am using DPDK 20.08 with a Mellanox CX-5, RSS queue size = 4096

Thanks


More information about the users mailing list