Re: [PATCH net] ixgbe: implement get_queue_stats_rx
From: Jakub Kicinski
Date: Mon May 25 2026 - 11:58:29 EST
On Sat, 23 May 2026 20:10:16 +0530 Kshitiz Bartariya wrote:
> The following counters are filled:
>
> - alloc_fail: sum of alloc_rx_page_failed and alloc_rx_buff_failed
>
> - csum_bad: maps directly to csum_err, which is incremented for both
> IP header and L4 checksum errors in ixgbe_rx_checksum().
>
> - hw_gro_packets and hw_gro_wire_packets: filled only when RSC
> is enabled on the ring
ixgbe does not advertise hw_gro in netdev features,
how can it report related stats..
> Signed-off-by: Kshitiz Bartariya <kshitiz.bartariya@xxxxxxxxxxx>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 29 +++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> index 2646ee6f295f..f40309f6c72b 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
> @@ -9740,6 +9740,34 @@ static void ixgbe_get_stats64(struct net_device *netdev,
> stats->rx_missed_errors = netdev->stats.rx_missed_errors;
> }
>
> +static void ixgbe_get_queue_stats_rx(struct net_device *dev, int idx,
> + struct netdev_queue_stats_rx *stats)
> +{
> + struct ixgbe_adapter *adapter = ixgbe_from_netdev(dev);
> + struct ixgbe_ring *ring;
> +
> + if (idx >= adapter->num_rx_queues)
> + return;
> +
> + ring = adapter->rx_ring[idx];
> + if (!ring)
> + return;
Are these checks really necessary? core already checks against
real_num_rx_queues