2 changes I noted in the output from ibqueryerrors. "Link Info:" was not being printed when "-r" was used.
The "header": Errors for 0x<guid> "<node name>" Should only be printed when errors are found. The following patch cleans those up. Ira From: Ira Weiny <[email protected]> Date: Tue, 28 Apr 2009 14:39:11 -0700 Subject: [PATCH] Fix 2 formatting diff's from old ibqueryerrors. Signed-off-by: Ira Weiny <[email protected]> --- infiniband-diags/src/ibqueryerrors.c | 29 ++++++++++++++++------------- 1 files changed, 16 insertions(+), 13 deletions(-) diff --git a/infiniband-diags/src/ibqueryerrors.c b/infiniband-diags/src/ibqueryerrors.c index 09861be..70c3d48 100644 --- a/infiniband-diags/src/ibqueryerrors.c +++ b/infiniband-diags/src/ibqueryerrors.c @@ -123,7 +123,6 @@ print_port_config(ibnd_node_t *node, int portnum) char speed_msg[256]; char ext_port_str[256]; int iwidth, ispeed, istate, iphystate; - int n = 0; ibnd_port_t *port = node->ports[portnum]; @@ -140,7 +139,7 @@ print_port_config(ibnd_node_t *node, int portnum) width_msg[0] = '\0'; speed_msg[0] = '\0'; - n = snprintf(link_str, 256, "(%3s %s %6s/%8s)", + snprintf(link_str, 256, "(%3s %s %6s/%8s)", mad_dump_val(IB_PORT_LINK_WIDTH_ACTIVE_F, width, 64, &iwidth), mad_dump_val(IB_PORT_LINK_SPEED_ACTIVE_F, speed, 64, &ispeed), mad_dump_val(IB_PORT_STATE_F, state, 64, &istate), @@ -177,9 +176,9 @@ print_port_config(ibnd_node_t *node, int portnum) ext_port_str[0] = '\0'; if (node->type == IB_NODE_SWITCH) - printf(" %6d", node->smalid); + printf(" Link info: %6d", node->smalid); else - printf(" %6d", port->base_lid); + printf(" Link info: %6d", port->base_lid); printf("%4d[%2s] ==%s==> %s", port->portnum, ext_port_str, link_str, remote_str); @@ -211,7 +210,7 @@ report_suppressed(void) } static void -print_results(ibnd_node_t *node, uint8_t *pc, int portnum) +print_results(ibnd_node_t *node, uint8_t *pc, int portnum, int *header_printed) { char buf[1024]; char *str = buf; @@ -237,7 +236,6 @@ print_results(ibnd_node_t *node, uint8_t *pc, int portnum) /* if we found errors. */ if (n != 0) { - char *nodename = remap_node_name(node_name_map, node->guid, node->nodedesc); if (data_counters) for (i = IB_PC_XMT_BYTES_F; i <= IB_PC_RCV_PKTS_F; i++) { uint64_t val64 = 0; @@ -247,17 +245,21 @@ print_results(ibnd_node_t *node, uint8_t *pc, int portnum) mad_field_name(i), val64); } - printf("Errors for 0x%" PRIx64 " \"%s\"\n", node->guid, nodename); - printf(" GUID 0x%" PRIx64 " port %d:%s\n", - node->guid, portnum, str); + if (!*header_printed) { + char *nodename = remap_node_name(node_name_map, node->guid, node->nodedesc); + printf("Errors for 0x%" PRIx64 " \"%s\"\n", node->guid, nodename); + *header_printed = 1; + free(nodename); + } + + printf(" GUID 0x%" PRIx64 " port %d:%s\n", node->guid, portnum, str); if (port_config) print_port_config(node, portnum); - free(nodename); } } static void -print_port(ibnd_node_t *node, int portnum) +print_port(ibnd_node_t *node, int portnum, int *header_printed) { uint8_t pc[1024]; uint16_t cap_mask; @@ -291,7 +293,7 @@ print_port(ibnd_node_t *node, int portnum) uint32_t foo = 0; mad_encode_field(pc, IB_PC_XMT_WAIT_F, &foo); } - print_results(node, pc, portnum); + print_results(node, pc, portnum, header_printed); cleanup: free(nodename); @@ -300,6 +302,7 @@ cleanup: void print_node(ibnd_node_t *node, void *user_data) { + int header_printed = 0; int p = 0; int startport = 1; @@ -311,7 +314,7 @@ print_node(ibnd_node_t *node, void *user_data) for (p = startport; p <= node->numports; p++) { if (node->ports[p]) { - print_port(node, p); + print_port(node, p, &header_printed); } } } -- 1.5.4.5 _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
