[PATCH v2 10/10] net/mlx5/hws: add debug details for cross gvmi

Erez Shitrit erezsh at nvidia.com
Thu Jan 5 14:03:03 CET 2023


For context, table and matcher.

Signed-off-by: Erez Shitrit <erezsh at nvidia.com>
Signed-off-by: Hamdan Igbaria <hamdani at nvidia.com>
Reviewed-by: Alex Vesker <valex at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_debug.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_debug.c b/drivers/net/mlx5/hws/mlx5dr_debug.c
index 55011c208d..239dfcae46 100644
--- a/drivers/net/mlx5/hws/mlx5dr_debug.c
+++ b/drivers/net/mlx5/hws/mlx5dr_debug.c
@@ -177,6 +177,7 @@ mlx5dr_debug_dump_matcher_attr(FILE *f, struct mlx5dr_matcher *matcher)
 
 static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher)
 {
+	bool is_shared = mlx5dr_context_shared_gvmi_used(matcher->tbl->ctx);
 	bool is_root = matcher->tbl->level == MLX5DR_ROOT_LEVEL;
 	enum mlx5dr_table_type tbl_type = matcher->tbl->type;
 	struct mlx5dr_devx_obj *ste_0, *ste_1 = NULL;
@@ -205,11 +206,13 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher)
 		ste_1 = NULL;
 	}
 
-	ret = fprintf(f, ",%d,%d,%d,%d",
+	ret = fprintf(f, ",%d,%d,%d,%d,%d",
 		      matcher->match_ste.rtc_0 ? matcher->match_ste.rtc_0->id : 0,
 		      ste_0 ? (int)ste_0->id : -1,
 		      matcher->match_ste.rtc_1 ? matcher->match_ste.rtc_1->id : 0,
-		      ste_1 ? (int)ste_1->id : -1);
+		      ste_1 ? (int)ste_1->id : -1,
+		      is_shared && !is_root ?
+		      matcher->match_ste.aliased_rtc_0->id : 0);
 	if (ret < 0)
 		goto out_err;
 
@@ -253,18 +256,20 @@ static int mlx5dr_debug_dump_matcher(FILE *f, struct mlx5dr_matcher *matcher)
 
 static int mlx5dr_debug_dump_table(FILE *f, struct mlx5dr_table *tbl)
 {
+	bool is_shared = mlx5dr_context_shared_gvmi_used(tbl->ctx);
 	bool is_root = tbl->level == MLX5DR_ROOT_LEVEL;
 	struct mlx5dr_matcher *matcher;
 	int ret;
 
-	ret = fprintf(f, "%d,0x%" PRIx64 ",0x%" PRIx64 ",%d,%d,%d,%d\n",
+	ret = fprintf(f, "%d,0x%" PRIx64 ",0x%" PRIx64 ",%d,%d,%d,%d,%d\n",
 		      MLX5DR_DEBUG_RES_TYPE_TABLE,
 		      (uint64_t)(uintptr_t)tbl,
 		      (uint64_t)(uintptr_t)tbl->ctx,
 		      is_root ? 0 : tbl->ft->id,
 		      tbl->type,
 		      is_root ? 0 : tbl->fw_ft_type,
-		      tbl->level);
+		      tbl->level,
+		      is_shared && !is_root ? tbl->local_ft->id : 0);
 	if (ret < 0) {
 		rte_errno = EINVAL;
 		return rte_errno;
@@ -383,12 +388,17 @@ static int mlx5dr_debug_dump_context_attr(FILE *f, struct mlx5dr_context *ctx)
 {
 	int ret;
 
-	ret = fprintf(f, "%u,0x%" PRIx64 ",%d,%zu,%d\n",
+	ret = fprintf(f, "%u,0x%" PRIx64 ",%d,%zu,%d,%s,%d,%d\n",
 		      MLX5DR_DEBUG_RES_TYPE_CONTEXT_ATTR,
 		      (uint64_t)(uintptr_t)ctx,
 		      ctx->pd_num,
 		      ctx->queues,
-		      ctx->send_queue->num_entries);
+		      ctx->send_queue->num_entries,
+		      mlx5dr_context_shared_gvmi_used(ctx) ?
+		      mlx5_glue->get_device_name(ctx->ibv_ctx->device) : "None",
+		      ctx->caps->vhca_id,
+		      mlx5dr_context_shared_gvmi_used(ctx) ?
+		      ctx->caps->shared_vhca_id : 0xffff);
 	if (ret < 0) {
 		rte_errno = EINVAL;
 		return rte_errno;
-- 
2.18.2



More information about the dev mailing list