On Tue, 23 Apr 2024 19:31:41 +0800 Xuan Zhuo wrote:
> +static void virtnet_get_base_stats(struct net_device *dev,
> +                                struct netdev_queue_stats_rx *rx,
> +                                struct netdev_queue_stats_tx *tx)
> +{
> +     /* The queue stats of the virtio-net will not be reset. So here we
> +      * return 0.
> +      */
> +     rx->bytes = 0;
> +     rx->packets = 0;
> +     rx->alloc_fail = 0;
> +     rx->hw_drops = 0;
> +     rx->hw_drop_overruns = 0;
> +     rx->csum_unnecessary = 0;
> +     rx->csum_none = 0;
> +     rx->csum_bad = 0;
> +     rx->hw_gro_packets = 0;
> +     rx->hw_gro_bytes = 0;
> +     rx->hw_gro_wire_packets = 0;
> +     rx->hw_gro_wire_bytes = 0;
> +     rx->hw_drop_ratelimits = 0;
> +
> +     tx->bytes = 0;
> +     tx->packets = 0;
> +     tx->hw_drops = 0;
> +     tx->hw_drop_errors = 0;
> +     tx->csum_none = 0;
> +     tx->needs_csum = 0;
> +     tx->hw_gso_packets = 0;
> +     tx->hw_gso_bytes = 0;
> +     tx->hw_gso_wire_packets = 0;
> +     tx->hw_gso_wire_bytes = 0;
> +     tx->hw_drop_ratelimits = 0;

Doesn't this need to be conditional based on device capabilities?
We should only assign the stats that the device is collecting
(both in base stats and per-queue).

Reply via email to