Skip to content
This repository was archived by the owner on Sep 30, 2022. It is now read-only.

Commit 41dc998

Browse files
committed
Merge pull request #369 from ggouaillardet/topic/v2.x/openib_out_of_credit_fix
btl/openib: queue pending fragments once only when running out of credit
2 parents 3a2407b + 625c280 commit 41dc998

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

opal/mca/btl/openib/btl_openib_component.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3380,12 +3380,15 @@ progress_pending_frags_wqe(mca_btl_base_endpoint_t *ep, const int qpn)
33803380
frag = opal_list_remove_first(&ep->qps[qpn].no_wqe_pending_frags[i]);
33813381
if(NULL == frag)
33823382
break;
3383+
assert(0 == frag->opal_list_item_refcount);
33833384
tmp_ep = to_com_frag(frag)->endpoint;
33843385
ret = mca_btl_openib_endpoint_post_send(tmp_ep, to_send_frag(frag));
33853386
if (OPAL_SUCCESS != ret) {
33863387
/* NTH: this handles retrying if we are out of credits but other errors are not
33873388
* handled (maybe abort?). */
3388-
opal_list_prepend (&ep->qps[qpn].no_wqe_pending_frags[i], (opal_list_item_t *) frag);
3389+
if (OPAL_ERR_RESOURCE_BUSY != ret) {
3390+
opal_list_prepend (&ep->qps[qpn].no_wqe_pending_frags[i], (opal_list_item_t *) frag);
3391+
}
33893392
break;
33903393
}
33913394
}

0 commit comments

Comments
 (0)