Renaming pending_frags to no_credits_pending_frags.
(this commit is part of bug fix for ticket #1693) This commit was SVN r20217.
Этот коммит содержится в:
родитель
2f7b66160b
Коммит
391b101439
@ -643,7 +643,7 @@ mca_btl_base_descriptor_t* mca_btl_openib_alloc(
|
||||
|
||||
if(NULL == sfrag) {
|
||||
if(BTL_OPENIB_QP_TYPE_PP(qp)) {
|
||||
sfrag = check_coalescing(&ep->qps[qp].pending_frags[prio],
|
||||
sfrag = check_coalescing(&ep->qps[qp].no_credits_pending_frags[prio],
|
||||
&ep->endpoint_lock, ep, size);
|
||||
} else {
|
||||
sfrag = check_coalescing(
|
||||
|
@ -2475,7 +2475,7 @@ static void progress_pending_eager_rdma(mca_btl_base_endpoint_t *ep)
|
||||
OPAL_THREAD_LOCK(&ep->endpoint_lock);
|
||||
for(qp = 0; qp < mca_btl_openib_component.num_qps; qp++) {
|
||||
while(ep->qps[qp].qp->sd_wqe > 0 && ep->eager_rdma_remote.tokens > 0) {
|
||||
frag = opal_list_remove_first(&ep->qps[qp].pending_frags[0]);
|
||||
frag = opal_list_remove_first(&ep->qps[qp].no_credits_pending_frags[0]);
|
||||
if(NULL == frag)
|
||||
break;
|
||||
mca_btl_openib_endpoint_post_send(ep, to_send_frag(frag));
|
||||
@ -2501,7 +2501,7 @@ static void progress_pending_frags_pp(mca_btl_base_endpoint_t *ep, const int qp)
|
||||
for(i = 0; i < 2; i++) {
|
||||
while((get_enpoint_credits(ep, qp) +
|
||||
(1 - i) * ep->eager_rdma_remote.tokens) > 0) {
|
||||
frag = opal_list_remove_first(&ep->qps[qp].pending_frags[i]);
|
||||
frag = opal_list_remove_first(&ep->qps[qp].no_credits_pending_frags[i]);
|
||||
if(NULL == frag)
|
||||
break;
|
||||
mca_btl_openib_endpoint_post_send(ep, to_send_frag(frag));
|
||||
|
@ -149,7 +149,7 @@ static int acquire_send_credit(mca_btl_openib_endpoint_t *endpoint,
|
||||
if(BTL_OPENIB_QP_TYPE_PP(qp)) {
|
||||
if(OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, -1) < 0) {
|
||||
OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, 1);
|
||||
opal_list_append(&endpoint->qps[qp].pending_frags[prio],
|
||||
opal_list_append(&endpoint->qps[qp].no_credits_pending_frags[prio],
|
||||
(opal_list_item_t *)frag);
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
@ -346,8 +346,8 @@ static void endpoint_init_qp(mca_btl_base_endpoint_t *ep, const int qp)
|
||||
OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[0], opal_list_t);
|
||||
OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[1], opal_list_t);
|
||||
|
||||
OBJ_CONSTRUCT(&ep_qp->pending_frags[0], opal_list_t);
|
||||
OBJ_CONSTRUCT(&ep_qp->pending_frags[1], opal_list_t);
|
||||
OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[0], opal_list_t);
|
||||
OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[1], opal_list_t);
|
||||
|
||||
switch(BTL_OPENIB_QP_TYPE(qp)) {
|
||||
case MCA_BTL_OPENIB_PP_QP:
|
||||
@ -495,10 +495,10 @@ static void mca_btl_openib_endpoint_destruct(mca_btl_base_endpoint_t* endpoint)
|
||||
|
||||
/* Close opened QPs if we have them*/
|
||||
for(qp = 0; qp < mca_btl_openib_component.num_qps; qp++) {
|
||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].pending_frags[0]);
|
||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].pending_frags[1]);
|
||||
OBJ_DESTRUCT(&endpoint->qps[qp].pending_frags[0]);
|
||||
OBJ_DESTRUCT(&endpoint->qps[qp].pending_frags[1]);
|
||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].no_credits_pending_frags[0]);
|
||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].no_credits_pending_frags[1]);
|
||||
OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[0]);
|
||||
OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[1]);
|
||||
|
||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(
|
||||
&endpoint->qps[qp].no_wqe_pending_frags[0]);
|
||||
|
@ -132,7 +132,7 @@ typedef struct mca_btl_openib_qp_t {
|
||||
|
||||
typedef struct mca_btl_openib_endpoint_qp_t {
|
||||
mca_btl_openib_qp_t *qp;
|
||||
opal_list_t pending_frags[2]; /**< put fragment here if there is no credits
|
||||
opal_list_t no_credits_pending_frags[2]; /**< put fragment here if there is no credits
|
||||
available */
|
||||
opal_list_t no_wqe_pending_frags[2]; /**< put fragments here if there is no wqe
|
||||
available */
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user