Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Tim S. Woodall (twoodall_at_[hidden])
Date: 2005-10-27 09:53:19


Gleb,

Thanks! I'll try to apply these today.

Tim

Gleb Natapov wrote:
> Return unused entry to free list before trying to allocate new one.
> Otherwise the code may deadlock.
>
> Index: ompi/mca/btl/openib/btl_openib_component.c
> ===================================================================
> --- ompi/mca/btl/openib/btl_openib_component.c (revision 7878)
> +++ ompi/mca/btl/openib/btl_openib_component.c (working copy)
> @@ -590,6 +590,7 @@
> &frag->base,
> openib_btl->ib_reg[frag->hdr->tag].cbdata);
>
> + OMPI_FREE_LIST_RETURN(&(openib_btl->recv_free_eager), (opal_list_item_t*) frag);
> #ifdef OMPI_MCA_BTL_OPENIB_HAVE_SRQ
> if(mca_btl_openib_component.use_srq) {
> OPAL_THREAD_ADD32((int32_t*) &openib_btl->srr_posted_high, -1);
> @@ -601,7 +602,6 @@
> #ifdef OMPI_MCA_BTL_OPENIB_HAVE_SRQ
> }
> #endif
> - OMPI_FREE_LIST_RETURN(&(openib_btl->recv_free_eager), (opal_list_item_t*) frag);
> count++;
> break;
>
> @@ -683,6 +683,8 @@
> &frag->base,
> openib_btl->ib_reg[frag->hdr->tag].cbdata);
>
> + OMPI_FREE_LIST_RETURN(&(openib_btl->recv_free_max), (opal_list_item_t*) frag);
> +
> #ifdef OMPI_MCA_BTL_OPENIB_HAVE_SRQ
> if(mca_btl_openib_component.use_srq) {
> OPAL_THREAD_ADD32((int32_t*) &openib_btl->srr_posted_low, -1);
> @@ -695,7 +697,6 @@
> #ifdef OMPI_MCA_BTL_OPENIB_HAVE_SRQ
> }
> #endif
> - OMPI_FREE_LIST_RETURN(&(openib_btl->recv_free_max), (opal_list_item_t*) frag);
> count++;
> break;
>
> --
> Gleb.
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>