Re: [OMPI devel] mca_bml_r2_del_proc_btl()

2011-01-04 Thread Jeff Squyres
On Jan 3, 2011, at 5:17 PM, Eugene Loh wrote:

> Shouldn't that inner loop be preceded by initialization of 
> ep->btl_max_send_size to some very large value (ironically enough, perhaps 
> "-1")?

Won't ep->btl_max_send_size already be set to the max value of all the btl's on 
the endpoint?

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI devel] mca_bml_r2_del_proc_btl()

2011-01-04 Thread George Bosilca
As the endpoint's btl_max_send_size has been initialized to the min of the 
max_size of all BTLs in the send (respectively rdma) array, the loop you 
pinpointed will have no effect (as it is impossible to find a smaller value 
than the minimum already computed). Pre-setting to (size_t)-1 should fix the 
issue.

  george.


On Jan 3, 2011, at 17:17 , Eugene Loh wrote:

> I can't tell if this is a problem, though I suspect it's a small one even if 
> it's a problem at all.
> 
> In mca_bml_r2_del_proc_btl(), a BTL is removed from the send list and from 
> the RDMA list.
> 
> If the BTL is removed from the send list, the end-point's max send size is 
> recomputed to be the minimum of the max send sizes of the remaining BTLs.  
> The code looks like this, where I've removed some code to focus on the parts 
> that matter:
> 
>   /* remove btl from send list */
>   if(mca_bml_base_btl_array_remove(&ep->btl_send, btl)) {
> 
>   /* reset max_send_size to the min of all btl's */
>   for(b=0; b< mca_bml_base_btl_array_get_size(&ep->btl_send); b++) {
>   bml_btl = mca_bml_base_btl_array_get_index(&ep->btl_send, b);
>   ep_btl = bml_btl->btl;
> 
>   if (ep_btl->btl_max_send_size < ep->btl_max_send_size) {
>   ep->btl_max_send_size = ep_btl->btl_max_send_size;
>   }
>   }
>   }
> 
> Shouldn't that inner loop be preceded by initialization of 
> ep->btl_max_send_size to some very large value (ironically enough, perhaps 
> "-1")?
> 
> Something similar happens in the same function when the BTL is removed from 
> the RDMA list and  ep->btl_pipeline_send_length and ep->btl_send_limit are 
> recomputed.
> ___
> devel mailing list
> de...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/devel




[OMPI devel] Opening the CMR doors for 1.5.2 next Tuesday

2011-01-04 Thread Jeff Squyres
We discussed on the call today that Rainer and I are waiting for another week 
in case any "oops!"es are found in the 1.5.1 release such that we would need to 
do an immediate 1.5.2 release.

If all goes well (meaning that no "oops"es are found), starting next Tuesday, 
we'll open the floodgates and allow the pending CMRs to go into 1.5.2.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/




Re: [OMPI devel] mca_bml_r2_del_proc_btl()

2011-01-04 Thread Eugene Loh

Thanks for the sanity check.  Fix in r24202.

George Bosilca wrote:


As the endpoint's btl_max_send_size has been initialized to the min of the 
max_size of all BTLs in the send (respectively rdma) array, the loop you 
pinpointed will have no effect (as it is impossible to find a smaller value 
than the minimum already computed). Pre-setting to (size_t)-1 should fix the 
issue.

On Jan 3, 2011, at 17:17 , Eugene Loh wrote:
 


I can't tell if this is a problem, though I suspect it's a small one even if 
it's a problem at all.

In mca_bml_r2_del_proc_btl(), a BTL is removed from the send list and from the 
RDMA list.

If the BTL is removed from the send list, the end-point's max send size is 
recomputed to be the minimum of the max send sizes of the remaining BTLs.  The 
code looks like this, where I've removed some code to focus on the parts that 
matter:

 /* remove btl from send list */
 if(mca_bml_base_btl_array_remove(&ep->btl_send, btl)) {

 /* reset max_send_size to the min of all btl's */
 for(b=0; b< mca_bml_base_btl_array_get_size(&ep->btl_send); b++) {
 bml_btl = mca_bml_base_btl_array_get_index(&ep->btl_send, b);
 ep_btl = bml_btl->btl;

 if (ep_btl->btl_max_send_size < ep->btl_max_send_size) {
 ep->btl_max_send_size = ep_btl->btl_max_send_size;
 }
 }
 }

Shouldn't that inner loop be preceded by initialization of ep->btl_max_send_size to some 
very large value (ironically enough, perhaps "-1")?

Something similar happens in the same function when the BTL is removed from the RDMA 
list and  ep->btl_pipeline_send_length and ep->btl_send_limit are recomputed.