From: Toshiaki Makita <makita.toshiaki@xxxxxxxxxxxxx> Date: Wed, 17 Jan 2018 15:38:25 +0900 > The main purpose of this patch is adding a way of checking per-queue stats. > It's useful to debug performance problems on multiqueue environment. > > $ ethtool -S ens10 > NIC statistics: > rx_queue_0_packets: 2090408 > rx_queue_0_bytes: 3164825094 > rx_queue_1_packets: 2082531 > rx_queue_1_bytes: 3152932314 > tx_queue_0_packets: 2770841 > tx_queue_0_bytes: 4194955474 > tx_queue_1_packets: 3084697 > tx_queue_1_bytes: 4670196372 > > This change converts existing per-cpu stats structure into per-queue one. > This should not impact on performance since each queue counter is not > updated concurrently by multiple cpus. > > Performance numbers: > - Guest has 2 vcpus and 2 queues > - Guest runs netserver > - Host runs 100-flow super_netperf > > Before After Diff > UDP_STREAM 18byte 86.22 87.00 +0.90% > UDP_STREAM 1472byte 4055.27 4042.18 -0.32% > TCP_STREAM 16956.32 16890.63 -0.39% > UDP_RR 178667.11 185862.70 +4.03% > TCP_RR 128473.04 124985.81 -2.71% > > Signed-off-by: Toshiaki Makita <makita.toshiaki@xxxxxxxxxxxxx> > --- > v2: > - Removed redundant counters which can be obtained from dev_get_stats. > - Made queue counter structure different for tx and rx so they can be > easily extended separately, as some additional counters are expected > like XDP related ones and VM-Exit event. > - Added performance numbers in commitlog. Applied, thanks. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization