Re: [PATCH net-next V2 2/2] net/mlx5e: Expose TIS via devlink tx reporter diagnose
From: Michal Swiatkowski
Date: Wed Jul 23 2025 - 02:58:27 EST
On Tue, Jul 22, 2025 at 05:23:48PM +0300, Tariq Toukan wrote:
> From: Feng Liu <feliu@xxxxxxxxxx>
>
> Underneath "TIS Config" tag expose TIS diagnostic information.
> Expose the tisn of each TC under each lag port.
>
> $ sudo devlink health diagnose auxiliary/mlx5_core.eth.2/131072 reporter tx
> ......
> TIS Config:
> lag port: 0 tc: 0 tisn: 0
> lag port: 1 tc: 0 tisn: 8
> ......
>
> Signed-off-by: Feng Liu <feliu@xxxxxxxxxx>
> Reviewed-by: Aya Levin <ayal@xxxxxxxxxx>
> Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
> ---
> .../mellanox/mlx5/core/en/reporter_tx.c | 25 +++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
> index bd96988e102c..85d5cb39b107 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c
> @@ -311,6 +311,30 @@ mlx5e_tx_reporter_diagnose_common_config(struct devlink_health_reporter *reporte
> mlx5e_health_fmsg_named_obj_nest_end(fmsg);
> }
>
> +static void
> +mlx5e_tx_reporter_diagnose_tis_config(struct devlink_health_reporter *reporter,
> + struct devlink_fmsg *fmsg)
> +{
> + struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter);
> + u8 num_tc = mlx5e_get_dcb_num_tc(&priv->channels.params);
> + u32 tc, i, tisn;
> +
> + devlink_fmsg_arr_pair_nest_start(fmsg, "TIS Config");
> + for (i = 0; i < mlx5e_get_num_lag_ports(priv->mdev); i++) {
> + for (tc = 0; tc < num_tc; tc++) {
nit: tisn can be defined in this for, not outside.
> + tisn = mlx5e_profile_get_tisn(priv->mdev, priv,
> + priv->profile, i, tc);
> +
> + devlink_fmsg_obj_nest_start(fmsg);
> + devlink_fmsg_u32_pair_put(fmsg, "lag port", i);
> + devlink_fmsg_u32_pair_put(fmsg, "tc", tc);
> + devlink_fmsg_u32_pair_put(fmsg, "tisn", tisn);
> + devlink_fmsg_obj_nest_end(fmsg);
> + }
> + }
> + devlink_fmsg_arr_pair_nest_end(fmsg);
> +}
> +
> static int mlx5e_tx_reporter_diagnose(struct devlink_health_reporter *reporter,
> struct devlink_fmsg *fmsg,
> struct netlink_ext_ack *extack)
> @@ -326,6 +350,7 @@ static int mlx5e_tx_reporter_diagnose(struct devlink_health_reporter *reporter,
> goto unlock;
>
> mlx5e_tx_reporter_diagnose_common_config(reporter, fmsg);
> + mlx5e_tx_reporter_diagnose_tis_config(reporter, fmsg);
> devlink_fmsg_arr_pair_nest_start(fmsg, "SQs");
> for (i = 0; i < priv->channels.num; i++) {
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@xxxxxxxxxxxxxxx>
> --
> 2.31.1