]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
virtio-net: fix total qstat values
authorJakub Kicinski <kuba@kernel.org>
Wed, 7 May 2025 00:32:21 +0000 (17:32 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 8 May 2025 09:56:12 +0000 (11:56 +0200)
NIPA tests report that the interface statistics reported
via qstat are lower than those reported via ip link.
Looks like this is because some tests flip the queue
count up and down, and we end up with some of the traffic
accounted on disabled queues.

Add up counters from disabled queues.

Fixes: d888f04c09bb ("virtio-net: support queue stat")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250507003221.823267-3-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/virtio_net.c

index f9e3e628ec4df9c2e2e4095a2a61122982f16d2a..e53ba600605a5d7193b16a1a9decb6e42cf12366 100644 (file)
@@ -5678,6 +5678,10 @@ static void virtnet_get_base_stats(struct net_device *dev,
 
        if (vi->device_stats_cap & VIRTIO_NET_STATS_TYPE_TX_SPEED)
                tx->hw_drop_ratelimits = 0;
+
+       netdev_stat_queue_sum(dev,
+                             dev->real_num_rx_queues, vi->max_queue_pairs, rx,
+                             dev->real_num_tx_queues, vi->max_queue_pairs, tx);
 }
 
 static const struct netdev_stat_ops virtnet_stat_ops = {