Skip to content

Commit b8fb109

Browse files
ayalevinSaeed Mahameed
authored andcommitted
net/mlx5e: Add PTP RQ to RX reporter
When present, add the PTP RQ to the RX reporter. Signed-off-by: Aya Levin <[email protected]> Reviewed-by: Tariq Toukan <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 19cfa36 commit b8fb109

File tree

1 file changed

+66
-2
lines changed

1 file changed

+66
-2
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "params.h"
66
#include "txrx.h"
77
#include "devlink.h"
8+
#include "ptp.h"
89

910
static int mlx5e_query_rq_state(struct mlx5_core_dev *dev, u32 rqn, u8 *state)
1011
{
@@ -351,12 +352,34 @@ static int mlx5e_rx_reporter_diagnose_generic_rq(struct mlx5e_rq *rq,
351352
return mlx5e_health_fmsg_named_obj_nest_end(fmsg);
352353
}
353354

355+
static int
356+
mlx5e_rx_reporter_diagnose_common_ptp_config(struct mlx5e_priv *priv, struct mlx5e_ptp *ptp_ch,
357+
struct devlink_fmsg *fmsg)
358+
{
359+
int err;
360+
361+
err = mlx5e_health_fmsg_named_obj_nest_start(fmsg, "PTP");
362+
if (err)
363+
return err;
364+
365+
err = devlink_fmsg_u32_pair_put(fmsg, "filter_type", priv->tstamp.rx_filter);
366+
if (err)
367+
return err;
368+
369+
err = mlx5e_rx_reporter_diagnose_generic_rq(&ptp_ch->rq, fmsg);
370+
if (err)
371+
return err;
372+
373+
return mlx5e_health_fmsg_named_obj_nest_end(fmsg);
374+
}
375+
354376
static int
355377
mlx5e_rx_reporter_diagnose_common_config(struct devlink_health_reporter *reporter,
356378
struct devlink_fmsg *fmsg)
357379
{
358380
struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter);
359381
struct mlx5e_rq *generic_rq = &priv->channels.c[0]->rq;
382+
struct mlx5e_ptp *ptp_ch = priv->channels.ptp;
360383
int err;
361384

362385
err = mlx5e_health_fmsg_named_obj_nest_start(fmsg, "Common config");
@@ -367,14 +390,45 @@ mlx5e_rx_reporter_diagnose_common_config(struct devlink_health_reporter *reporte
367390
if (err)
368391
return err;
369392

393+
if (ptp_ch && test_bit(MLX5E_PTP_STATE_RX, ptp_ch->state)) {
394+
err = mlx5e_rx_reporter_diagnose_common_ptp_config(priv, ptp_ch, fmsg);
395+
if (err)
396+
return err;
397+
}
398+
370399
return mlx5e_health_fmsg_named_obj_nest_end(fmsg);
371400
}
372401

402+
static int mlx5e_rx_reporter_build_diagnose_output_ptp_rq(struct mlx5e_rq *rq,
403+
struct devlink_fmsg *fmsg)
404+
{
405+
int err;
406+
407+
err = devlink_fmsg_obj_nest_start(fmsg);
408+
if (err)
409+
return err;
410+
411+
err = devlink_fmsg_string_pair_put(fmsg, "channel", "ptp");
412+
if (err)
413+
return err;
414+
415+
err = mlx5e_rx_reporter_build_diagnose_output_rq_common(rq, fmsg);
416+
if (err)
417+
return err;
418+
419+
err = devlink_fmsg_obj_nest_end(fmsg);
420+
if (err)
421+
return err;
422+
423+
return 0;
424+
}
425+
373426
static int mlx5e_rx_reporter_diagnose(struct devlink_health_reporter *reporter,
374427
struct devlink_fmsg *fmsg,
375428
struct netlink_ext_ack *extack)
376429
{
377430
struct mlx5e_priv *priv = devlink_health_reporter_priv(reporter);
431+
struct mlx5e_ptp *ptp_ch = priv->channels.ptp;
378432
int i, err = 0;
379433

380434
mutex_lock(&priv->state_lock);
@@ -397,9 +451,12 @@ static int mlx5e_rx_reporter_diagnose(struct devlink_health_reporter *reporter,
397451
if (err)
398452
goto unlock;
399453
}
454+
if (ptp_ch && test_bit(MLX5E_PTP_STATE_RX, ptp_ch->state)) {
455+
err = mlx5e_rx_reporter_build_diagnose_output_ptp_rq(&ptp_ch->rq, fmsg);
456+
if (err)
457+
goto unlock;
458+
}
400459
err = devlink_fmsg_arr_pair_nest_end(fmsg);
401-
if (err)
402-
goto unlock;
403460
unlock:
404461
mutex_unlock(&priv->state_lock);
405462
return err;
@@ -531,6 +588,7 @@ static int mlx5e_rx_reporter_dump_rq(struct mlx5e_priv *priv, struct devlink_fms
531588
static int mlx5e_rx_reporter_dump_all_rqs(struct mlx5e_priv *priv,
532589
struct devlink_fmsg *fmsg)
533590
{
591+
struct mlx5e_ptp *ptp_ch = priv->channels.ptp;
534592
struct mlx5_rsc_key key = {};
535593
int i, err;
536594

@@ -563,6 +621,12 @@ static int mlx5e_rx_reporter_dump_all_rqs(struct mlx5e_priv *priv,
563621
return err;
564622
}
565623

624+
if (ptp_ch && test_bit(MLX5E_PTP_STATE_RX, ptp_ch->state)) {
625+
err = mlx5e_health_queue_dump(priv, fmsg, ptp_ch->rq.rqn, "PTP RQ");
626+
if (err)
627+
return err;
628+
}
629+
566630
return devlink_fmsg_arr_pair_nest_end(fmsg);
567631
}
568632

0 commit comments

Comments
 (0)