[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3d1cf564-c77b-4c8b-95ba-e33658596a93@intel.com>
Date: Thu, 30 May 2024 14:11:19 -0700
From: Jacob Keller <jacob.e.keller@...el.com>
To: Joe Damato <jdamato@...tly.com>, <linux-kernel@...r.kernel.org>,
<netdev@...r.kernel.org>
CC: <nalramli@...tly.com>, <mkarsten@...terloo.ca>, Tariq Toukan
<tariqt@...dia.com>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet
<edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni
<pabeni@...hat.com>, "open list:MELLANOX MLX4 core VPI driver"
<linux-rdma@...r.kernel.org>
Subject: Re: [PATCH net-next v6 3/3] net/mlx4: support per-queue statistics
via netlink
On 5/28/2024 11:11 AM, Joe Damato wrote:
> Make mlx4 compatible with the newly added netlink queue stats API.
>
> Signed-off-by: Joe Damato <jdamato@...tly.com>
> Tested-by: Martin Karsten <mkarsten@...terloo.ca>
> Reviewed-by: Tariq Toukan <tariqt@...dia.com>
> ---
> .../net/ethernet/mellanox/mlx4/en_netdev.c | 73 +++++++++++++++++++
> 1 file changed, 73 insertions(+)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> index 4d2f8c458346..281b34af0bb4 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> @@ -43,6 +43,7 @@
> #include <net/vxlan.h>
> #include <net/devlink.h>
> #include <net/rps.h>
> +#include <net/netdev_queues.h>
>
> #include <linux/mlx4/driver.h>
> #include <linux/mlx4/device.h>
> @@ -3100,6 +3101,77 @@ void mlx4_en_set_stats_bitmap(struct mlx4_dev *dev,
> last_i += NUM_PHY_STATS;
> }
>
> +static void mlx4_get_queue_stats_rx(struct net_device *dev, int i,
> + struct netdev_queue_stats_rx *stats)
> +{
> + struct mlx4_en_priv *priv = netdev_priv(dev);
> + const struct mlx4_en_rx_ring *ring;
> +
> + spin_lock_bh(&priv->stats_lock);
> +
> + if (!priv->port_up || mlx4_is_master(priv->mdev->dev))
> + goto out_unlock;
> +
> + ring = priv->rx_ring[i];
> + stats->packets = READ_ONCE(ring->packets);
> + stats->bytes = READ_ONCE(ring->bytes);
> + stats->alloc_fail = READ_ONCE(ring->alloc_fail);
> +
Ahh, allocation failures is reported here. Ok. I probably would have
re-ordered patches so that the implementation of alloc_fail came after
and it was a bit more obvious how it would be used.
Either way, I don't think that deserves a resend.
Reviewed-by: Jacob Keller <jacob.e.keller@...el.com>
Powered by blists - more mailing lists