summaryrefslogtreecommitdiff
path: root/rdma
diff options
context:
space:
mode:
authorNeta Ostrovsky <netao@nvidia.com>2021-10-25 13:37:07 +0300
committerStephen Hemminger <stephen@networkplumber.org>2021-10-29 15:04:45 -0700
commitad3a118f885382f03f975d70e5d607e70befc7dd (patch)
tree775d4376c4130c09931e9c652033d8634ab122e3 /rdma
parent7a235a101b326156305c9a593d1f9f12f1465d04 (diff)
downloadiproute2-ad3a118f885382f03f975d70e5d607e70befc7dd.tar.gz
rdma: Fix SRQ resource tracking information json
Fix the json output for the QPs that are associated with the SRQ - The qpn are now displayed in a json array. Sample output before the fix: $ rdma res show srq lqpn 126-141 -j -p [ { "ifindex":0, "ifname":"ibp8s0f0", "srqn":4, "type":"BASIC", "lqpn":["126-128,130-140"], "pdn":9, "pid":3581, "comm":"ibv_srq_pingpon" },{ "ifindex":0, "ifname":"ibp8s0f0", "srqn":5, "type":"BASIC", "lqpn":["141"], "pdn":10, "pid":3584, "comm":"ibv_srq_pingpon" } ] Sample output after the fix: $ rdma res show srq lqpn 126-141 -j -p [ { "ifindex":0, "ifname":"ibp8s0f0", "srqn":4, "type":"BASIC", "lqpn":["126-128","130-140"], "pdn":9, "pid":3581, "comm":"ibv_srq_pingpon" },{ "ifindex":0, "ifname":"ibp8s0f0", "srqn":5, "type":"BASIC", "lqpn":["141"], "pdn":10, "pid":3584, "comm":"ibv_srq_pingpon" } ] Fixes: 9b272e138d23 ("rdma: Add SRQ resource tracking information") Signed-off-by: Neta Ostrovsky <netao@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Diffstat (limited to 'rdma')
-rw-r--r--rdma/res-srq.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/rdma/res-srq.c b/rdma/res-srq.c
index c14ac5d8..5d8f3842 100644
--- a/rdma/res-srq.c
+++ b/rdma/res-srq.c
@@ -26,11 +26,24 @@ static void print_type(struct rd *rd, uint32_t val)
srq_types_to_str(val));
}
-static void print_qps(const char *str)
+static void print_qps(char *qp_str)
{
- if (!strlen(str))
+ char *qpn;
+
+ if (!strlen(qp_str))
return;
- print_color_string(PRINT_ANY, COLOR_NONE, "lqpn", "lqpn %s ", str);
+
+ open_json_array(PRINT_ANY, "lqpn");
+ print_color_string(PRINT_FP, COLOR_NONE, NULL, " ", NULL);
+ qpn = strtok(qp_str, ",");
+ while (qpn) {
+ print_color_string(PRINT_ANY, COLOR_NONE, NULL, "%s", qpn);
+ qpn = strtok(NULL, ",");
+ if (qpn)
+ print_color_string(PRINT_FP, COLOR_NONE, NULL, ",", NULL);
+ }
+ print_color_string(PRINT_FP, COLOR_NONE, NULL, " ", NULL);
+ close_json_array(PRINT_JSON, NULL);
}
static int filter_srq_range_qps(struct rd *rd, struct nlattr **qp_line,