[ewg] [PATCH] infiniband-diags/scripts/ibcheckerrs.in: emulate all ports if necessary.
Ira Weiny
weiny2 at llnl.gov
Thu May 6 09:18:29 PDT 2010
Upon thinking about this a bit more, and seeing Mikes patch. I think that the
patch which Mike sent some time ago is a better fix. This will work fine for
ibcheckerrs. However ibcheckerrors will run AllPortSelect and then go on to
query all the ports individually. The patch below will cause a double read
for each port which will kill ibcheckerrors performance on a large cluster.
Sasha, what is the status of Mikes patch?
Ira
On Wed, 5 May 2010 19:47:20 -0700
Ira Weiny <weiny2 at llnl.gov> wrote:
>
> From: Ira Weiny <weiny2 at llnl.gov>
> Date: Wed, 5 May 2010 19:49:37 -0700
> Subject: [PATCH] infiniband-diags/scripts/ibcheckerrs.in: emulate all ports if necessary.
>
>
> Signed-off-by: Ira Weiny <weiny2 at llnl.gov>
> ---
> infiniband-diags/scripts/ibcheckerrs.in | 2 +-
> infiniband-diags/src/perfquery.c | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/infiniband-diags/scripts/ibcheckerrs.in b/infiniband-diags/scripts/ibcheckerrs.in
> index 305379a..f4eb451 100644
> --- a/infiniband-diags/scripts/ibcheckerrs.in
> +++ b/infiniband-diags/scripts/ibcheckerrs.in
> @@ -153,7 +153,7 @@ fi
>
> nodename=`$IBPATH/smpquery $ca_info nodedesc $lid | sed -e "s/^Node Description:\.*\(.*\)/\1/"`
>
> -text="`eval $IBPATH/perfquery $ca_info $lid $portnum`"
> +text="`eval $IBPATH/perfquery -a $ca_info $lid $portnum`"
> rv=$?
> if echo "$text" | awk -v mono=$bw -v brief=$brief -F '[.:]*' '
> function blue(s)
> diff --git a/infiniband-diags/src/perfquery.c b/infiniband-diags/src/perfquery.c
> index 00ebfff..5d3b606 100644
> --- a/infiniband-diags/src/perfquery.c
> +++ b/infiniband-diags/src/perfquery.c
> @@ -525,11 +525,11 @@ int main(int argc, char **argv)
> /* ClassPortInfo should be supported as part of libibmad */
> memcpy(&cap_mask, pc + 2, sizeof(cap_mask)); /* CapabilityMask */
> cap_mask = ntohs(cap_mask);
> - if (!(cap_mask & 0x100)) { /* bit 8 is AllPortSelect */
> - if (!all_ports && port == ALL_PORTS)
> - IBERROR("AllPortSelect not supported");
> + if (port == ALL_PORTS && !(cap_mask & 0x100)) { /* bit 8 is AllPortSelect */
> if (all_ports)
> all_ports_loop = 1;
> + else
> + IBERROR("AllPortSelect not supported");
> }
>
> if (xmt_sl) {
> --
> 1.5.4.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://*vger.kernel.org/majordomo-info.html
>
--
Ira Weiny <weiny2 at llnl.gov>
More information about the ewg
mailing list