[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