Dump the STC info in debug dump. Signed-off-by: Hamdan Igbaria <hamd...@nvidia.com> --- drivers/net/mlx5/hws/mlx5dr_debug.c | 55 +++++++++++++++++++++++++++++ drivers/net/mlx5/hws/mlx5dr_debug.h | 1 + 2 files changed, 56 insertions(+)
diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.c b/drivers/net/mlx5/hws/mlx5dr_debug.c index 4bbdb767ee..6a2644693b 100644 --- a/drivers/net/mlx5/hws/mlx5dr_debug.c +++ b/drivers/net/mlx5/hws/mlx5dr_debug.c @@ -435,6 +435,57 @@ static int mlx5dr_debug_dump_context_info(FILE *f, struct mlx5dr_context *ctx) return 0; } +static int +mlx5dr_debug_dump_context_stc_resource(FILE *f, + struct mlx5dr_context *ctx, + uint32_t tbl_type, + struct mlx5dr_pool_resource *resource) +{ + int ret; + + ret = fprintf(f, "%d,0x%" PRIx64 ",%u,%u\n", + MLX5DR_DEBUG_RES_TYPE_CONTEXT_STC, + (uint64_t)(uintptr_t)ctx, + tbl_type, + resource->base_id); + if (ret < 0) { + rte_errno = EINVAL; + return rte_errno; + } + + return 0; +} + +static int mlx5dr_debug_dump_context_stc(FILE *f, struct mlx5dr_context *ctx) +{ + struct mlx5dr_pool *stc_pool; + int ret; + int i; + + for (i = 0; i < MLX5DR_TABLE_TYPE_MAX; i++) { + stc_pool = ctx->stc_pool[i]; + + if (!stc_pool) + continue; + + if (stc_pool->resource[0] != NULL) { + ret = mlx5dr_debug_dump_context_stc_resource(f, ctx, i, + stc_pool->resource[0]); + if (ret) + return ret; + } + + if (i == MLX5DR_TABLE_TYPE_FDB && stc_pool->mirror_resource[0] != NULL) { + ret = mlx5dr_debug_dump_context_stc_resource(f, ctx, i, + stc_pool->mirror_resource[0]); + if (ret) + return ret; + } + } + + return 0; +} + static int mlx5dr_debug_dump_context(FILE *f, struct mlx5dr_context *ctx) { struct mlx5dr_table *tbl; @@ -448,6 +499,10 @@ static int mlx5dr_debug_dump_context(FILE *f, struct mlx5dr_context *ctx) if (ret) return ret; + ret = mlx5dr_debug_dump_context_stc(f, ctx); + if (ret) + return ret; + LIST_FOREACH(tbl, &ctx->head, next) { ret = mlx5dr_debug_dump_table(f, tbl); if (ret) diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.h b/drivers/net/mlx5/hws/mlx5dr_debug.h index cf00170f7d..4702ed0ea5 100644 --- a/drivers/net/mlx5/hws/mlx5dr_debug.h +++ b/drivers/net/mlx5/hws/mlx5dr_debug.h @@ -13,6 +13,7 @@ enum mlx5dr_debug_res_type { MLX5DR_DEBUG_RES_TYPE_CONTEXT_CAPS = 4002, MLX5DR_DEBUG_RES_TYPE_CONTEXT_SEND_ENGINE = 4003, MLX5DR_DEBUG_RES_TYPE_CONTEXT_SEND_RING = 4004, + MLX5DR_DEBUG_RES_TYPE_CONTEXT_STC = 4005, MLX5DR_DEBUG_RES_TYPE_TABLE = 4100, -- 2.31.1