• Toshiaki Makita's avatar
    virtio_net: Add ethtool stats · d7dfc5cf
    Toshiaki Makita authored
    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: default avatarToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d7dfc5cf
virtio_net.c 76.1 KB