Re: Virtio xstats problem
From: Igor Ryzhov <hidden>
Date: 2016-02-26 14:35:48
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 [off-list ref] написал(а):quoted
From: dev [mailto:dev-bounces@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: 3quoted
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.quoted
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.quoted
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