[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