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


Reply via email to