[dpdk-dev] Virtio xstats problem

Igor Ryzhov iryzhov at nfware.com
Fri Feb 26 15:35:46 CET 2016


Hello, Harry.

Understood about size of packets. It's a bit confusing, because in all other drivers undersized packet is an error. Maybe we should add another one size bin for virtio - 60 to 63 bytes?

I already checked about multicast/broadcast counters - broadcast packets are counted twice:

	vq->multicast += is_multicast_ether_addr(ea);
	vq->broadcast += is_broadcast_ether_addr(ea);

I think it should be something like:

	if (is_multicast_ether_addr(ea)) {
		if (is_broadcast_ether_addr(ea)) {
			vq->broadcast++;
		} else {
			vq->multicast++;
		}
	}

Best regards,
Igor

> 26 февр. 2016 г., в 17:29, Van Haaren, Harry <harry.van.haaren at intel.com> написал(а):
> 
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Igor Ryzhov
>> I found some problem with virtio xstats counters.
>> 
>> Example:
>> 
>> rx_good_packets: 3
>> rx_good_bytes: 180
>> rx_errors: 0
>> 
>> rx_q0_good_packets: 3
>> rx_q0_good_bytes: 180
>> rx_q0_errors: 0
>> 
>> rx_q0_multicast_packets: 3
>> rx_q0_broadcast_packets: 1
>> rx_q0_undersize_packets: 3
> 
>> It means that undersize packets are counted as good packets instead of errors.
> 
> Are you sending 64 byte packets? There are no 4 bytes of CRC on virtual
> interfaces, so 60 bytes per packet is OK.
> 
>> Or maybe
>> size of packet is calculated wrong.
>> I don't have time now to check it more deeply - I can do it sometime later, but maybe
>> someone want to help.
> 
> Are the packets multicast or broadcast?
> It looks like one of the counters there is wrong.
> 
>> PS. Is it a common practice to count broadcast packets twice - in broadcast and multicast
>> counters?
> 
> No packet should be counted twice - it must be put into one bucket of mutli, broad or unicast.
> 
> -Harry



More information about the dev mailing list