[PATCH rdma-core 03/27] mlx5: Enable debug functionality for vfio
From: Yishai Hadas <yishaih@nvidia.com>
Date: 2021-07-20 08:17:42
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Maor Gottlieb <redacted> Usage will be in next patches. Signed-off-by: Maor Gottlieb <redacted> Signed-off-by: Yishai Hadas <yishaih@nvidia.com> --- providers/mlx5/mlx5.c | 28 ++++++++++++++-------------- providers/mlx5/mlx5.h | 4 ++++ 2 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/providers/mlx5/mlx5.c b/providers/mlx5/mlx5.c
index 46d7748..1abaa8c 100644
--- a/providers/mlx5/mlx5.c
+++ b/providers/mlx5/mlx5.c@@ -583,7 +583,7 @@ static int get_total_uuars(int page_size) return size; } -static void open_debug_file(struct mlx5_context *ctx) +void mlx5_open_debug_file(FILE **dbg_fp) { char *env; FILE *default_dbg_fp = NULL;
@@ -594,25 +594,25 @@ static void open_debug_file(struct mlx5_context *ctx) env = getenv("MLX5_DEBUG_FILE"); if (!env) { - ctx->dbg_fp = default_dbg_fp; + *dbg_fp = default_dbg_fp; return; } - ctx->dbg_fp = fopen(env, "aw+"); - if (!ctx->dbg_fp) { - ctx->dbg_fp = default_dbg_fp; - mlx5_err(ctx->dbg_fp, "Failed opening debug file %s\n", env); + *dbg_fp = fopen(env, "aw+"); + if (!*dbg_fp) { + *dbg_fp = default_dbg_fp; + mlx5_err(*dbg_fp, "Failed opening debug file %s\n", env); return; } } -static void close_debug_file(struct mlx5_context *ctx) +void mlx5_close_debug_file(FILE *dbg_fp) { - if (ctx->dbg_fp && ctx->dbg_fp != stderr) - fclose(ctx->dbg_fp); + if (dbg_fp && dbg_fp != stderr) + fclose(dbg_fp); } -static void set_debug_mask(void) +void mlx5_set_debug_mask(void) { char *env;
@@ -2036,7 +2036,7 @@ static int get_uar_info(struct mlx5_device *mdev, static void mlx5_uninit_context(struct mlx5_context *context) { - close_debug_file(context); + mlx5_close_debug_file(context->dbg_fp); verbs_uninit_context(&context->ibv_ctx); free(context);
@@ -2056,8 +2056,8 @@ static struct mlx5_context *mlx5_init_context(struct ibv_device *ibdev, if (!context) return NULL; - open_debug_file(context); - set_debug_mask(); + mlx5_open_debug_file(&context->dbg_fp); + mlx5_set_debug_mask(); set_freeze_on_error(); if (gethostname(context->hostname, sizeof(context->hostname))) strcpy(context->hostname, "host_unknown");
@@ -2377,7 +2377,7 @@ static void mlx5_free_context(struct ibv_context *ibctx) page_size); if (context->clock_info_page) munmap((void *)context->clock_info_page, page_size); - close_debug_file(context); + mlx5_close_debug_file(context->dbg_fp); clean_dyn_uars(ibctx); reserved_qpn_blks_free(context);
diff --git a/providers/mlx5/mlx5.h b/providers/mlx5/mlx5.h
index 3862007..7436bc8 100644
--- a/providers/mlx5/mlx5.h
+++ b/providers/mlx5/mlx5.h@@ -992,6 +992,10 @@ static inline struct mlx5_flow *to_mflow(struct ibv_flow *flow_id) bool is_mlx5_dev(struct ibv_device *device); +void mlx5_open_debug_file(FILE **dbg_fp); +void mlx5_close_debug_file(FILE *dbg_fp); +void mlx5_set_debug_mask(void); + int mlx5_alloc_buf(struct mlx5_buf *buf, size_t size, int page_size); void mlx5_free_buf(struct mlx5_buf *buf); int mlx5_alloc_buf_contig(struct mlx5_context *mctx, struct mlx5_buf *buf,
--
1.8.3.1