From: Shangyan Zhou Date: Fri, 4 Mar 2022 12:46:37 +0000 (+0800) Subject: rdma: Fix res_print_uint() and add res_print_u64() X-Git-Tag: v5.17.0~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d0badecea4c5e85345577984a328f38c75685c3;p=thirdparty%2Fiproute2.git rdma: Fix res_print_uint() and add res_print_u64() Use the corresponding function and fmt string to print unsigned int32 and int64. Signed-off-by: Shangyan Zhou Reviewed-by: Leon Romanovsky Signed-off-by: Stephen Hemminger --- diff --git a/rdma/res-cq.c b/rdma/res-cq.c index 9e7c4f512..475179c8b 100644 --- a/rdma/res-cq.c +++ b/rdma/res-cq.c @@ -112,7 +112,7 @@ static int res_cq_line(struct rd *rd, const char *name, int idx, print_dev(rd, idx, name); res_print_uint(rd, "cqn", cqn, nla_line[RDMA_NLDEV_ATTR_RES_CQN]); res_print_uint(rd, "cqe", cqe, nla_line[RDMA_NLDEV_ATTR_RES_CQE]); - res_print_uint(rd, "users", users, + res_print_u64(rd, "users", users, nla_line[RDMA_NLDEV_ATTR_RES_USECNT]); print_poll_ctx(rd, poll_ctx, nla_line[RDMA_NLDEV_ATTR_RES_POLL_CTX]); print_cq_dim_setting(rd, nla_line[RDMA_NLDEV_ATTR_DEV_DIM]); diff --git a/rdma/res-mr.c b/rdma/res-mr.c index 1bf73f3a8..a5b1ec5db 100644 --- a/rdma/res-mr.c +++ b/rdma/res-mr.c @@ -77,7 +77,7 @@ static int res_mr_line(struct rd *rd, const char *name, int idx, print_key(rd, "rkey", rkey, nla_line[RDMA_NLDEV_ATTR_RES_RKEY]); print_key(rd, "lkey", lkey, nla_line[RDMA_NLDEV_ATTR_RES_LKEY]); print_key(rd, "iova", iova, nla_line[RDMA_NLDEV_ATTR_RES_IOVA]); - res_print_uint(rd, "mrlen", mrlen, nla_line[RDMA_NLDEV_ATTR_RES_MRLEN]); + res_print_u64(rd, "mrlen", mrlen, nla_line[RDMA_NLDEV_ATTR_RES_MRLEN]); res_print_uint(rd, "pdn", pdn, nla_line[RDMA_NLDEV_ATTR_RES_PDN]); res_print_uint(rd, "pid", pid, nla_line[RDMA_NLDEV_ATTR_RES_PID]); print_comm(rd, comm, nla_line); diff --git a/rdma/res-pd.c b/rdma/res-pd.c index df5380103..6fec787c8 100644 --- a/rdma/res-pd.c +++ b/rdma/res-pd.c @@ -65,7 +65,7 @@ static int res_pd_line(struct rd *rd, const char *name, int idx, res_print_uint(rd, "pdn", pdn, nla_line[RDMA_NLDEV_ATTR_RES_PDN]); print_key(rd, "local_dma_lkey", local_dma_lkey, nla_line[RDMA_NLDEV_ATTR_RES_LOCAL_DMA_LKEY]); - res_print_uint(rd, "users", users, + res_print_u64(rd, "users", users, nla_line[RDMA_NLDEV_ATTR_RES_USECNT]); print_key(rd, "unsafe_global_rkey", unsafe_global_rkey, nla_line[RDMA_NLDEV_ATTR_RES_UNSAFE_GLOBAL_RKEY]); diff --git a/rdma/res.c b/rdma/res.c index 21fef9bdd..62599095b 100644 --- a/rdma/res.c +++ b/rdma/res.c @@ -51,7 +51,7 @@ static int res_print_summary(struct rd *rd, struct nlattr **tb) name = mnl_attr_get_str(nla_line[RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_NAME]); curr = mnl_attr_get_u64(nla_line[RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_CURR]); - res_print_uint( + res_print_u64( rd, name, curr, nla_line[RDMA_NLDEV_ATTR_RES_SUMMARY_ENTRY_CURR]); } @@ -208,13 +208,22 @@ void print_key(struct rd *rd, const char *name, uint64_t val, print_color_hex(PRINT_ANY, COLOR_NONE, name, " 0x%" PRIx64 " ", val); } -void res_print_uint(struct rd *rd, const char *name, uint64_t val, +void res_print_uint(struct rd *rd, const char *name, uint32_t val, struct nlattr *nlattr) { if (!nlattr) return; print_color_uint(PRINT_ANY, COLOR_NONE, name, name, val); - print_color_uint(PRINT_FP, COLOR_NONE, NULL, " %d ", val); + print_color_uint(PRINT_FP, COLOR_NONE, NULL, " %" PRIu32 " ", val); +} + +void res_print_u64(struct rd *rd, const char *name, uint64_t val, + struct nlattr *nlattr) +{ + if (!nlattr) + return; + print_color_u64(PRINT_ANY, COLOR_NONE, name, name, val); + print_color_u64(PRINT_FP, COLOR_NONE, NULL, " %" PRIu64 " ", val); } RES_FUNC(res_no_args, RDMA_NLDEV_CMD_RES_GET, NULL, true, 0); diff --git a/rdma/res.h b/rdma/res.h index 58fa6ad1c..90c025131 100644 --- a/rdma/res.h +++ b/rdma/res.h @@ -188,7 +188,9 @@ void print_link(struct rd *rd, uint32_t idx, const char *name, uint32_t port, struct nlattr **nla_line); void print_key(struct rd *rd, const char *name, uint64_t val, struct nlattr *nlattr); -void res_print_uint(struct rd *rd, const char *name, uint64_t val, +void res_print_uint(struct rd *rd, const char *name, uint32_t val, + struct nlattr *nlattr); +void res_print_u64(struct rd *rd, const char *name, uint64_t val, struct nlattr *nlattr); void print_comm(struct rd *rd, const char *str, struct nlattr **nla_line); const char *qp_types_to_str(uint8_t idx); diff --git a/rdma/stat.c b/rdma/stat.c index adfcd34af..c7da29225 100644 --- a/rdma/stat.c +++ b/rdma/stat.c @@ -210,7 +210,7 @@ int res_get_hwcounters(struct rd *rd, struct nlattr *hwc_table, bool print) v = mnl_attr_get_u64(hw_line[RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE]); if (rd->pretty_output && !rd->json_output) newline_indent(rd); - res_print_uint(rd, nm, v, hw_line[RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_NAME]); + res_print_u64(rd, nm, v, hw_line[RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_NAME]); } return MNL_CB_OK; @@ -283,7 +283,7 @@ static int res_counter_line(struct rd *rd, const char *name, int index, print_color_uint(PRINT_ANY, COLOR_NONE, "cntn", "cntn %u ", cntn); if (nla_line[RDMA_NLDEV_ATTR_RES_TYPE]) print_qp_type(rd, qp_type); - res_print_uint(rd, "pid", pid, nla_line[RDMA_NLDEV_ATTR_RES_PID]); + res_print_u64(rd, "pid", pid, nla_line[RDMA_NLDEV_ATTR_RES_PID]); print_comm(rd, comm, nla_line); res_get_hwcounters(rd, hwc_table, true); isfirst = true;