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(NULL == sfrag) {
|
||||||
if(BTL_OPENIB_QP_TYPE_PP(qp)) {
|
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);
|
&ep->endpoint_lock, ep, size);
|
||||||
} else {
|
} else {
|
||||||
sfrag = check_coalescing(
|
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);
|
OPAL_THREAD_LOCK(&ep->endpoint_lock);
|
||||||
for(qp = 0; qp < mca_btl_openib_component.num_qps; qp++) {
|
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) {
|
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)
|
if(NULL == frag)
|
||||||
break;
|
break;
|
||||||
mca_btl_openib_endpoint_post_send(ep, to_send_frag(frag));
|
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++) {
|
for(i = 0; i < 2; i++) {
|
||||||
while((get_enpoint_credits(ep, qp) +
|
while((get_enpoint_credits(ep, qp) +
|
||||||
(1 - i) * ep->eager_rdma_remote.tokens) > 0) {
|
(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)
|
if(NULL == frag)
|
||||||
break;
|
break;
|
||||||
mca_btl_openib_endpoint_post_send(ep, to_send_frag(frag));
|
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(BTL_OPENIB_QP_TYPE_PP(qp)) {
|
||||||
if(OPAL_THREAD_ADD32(&endpoint->qps[qp].u.pp_qp.sd_credits, -1) < 0) {
|
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_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);
|
(opal_list_item_t *)frag);
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
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[0], opal_list_t);
|
||||||
OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[1], 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->no_credits_pending_frags[0], opal_list_t);
|
||||||
OBJ_CONSTRUCT(&ep_qp->pending_frags[1], opal_list_t);
|
OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[1], opal_list_t);
|
||||||
|
|
||||||
switch(BTL_OPENIB_QP_TYPE(qp)) {
|
switch(BTL_OPENIB_QP_TYPE(qp)) {
|
||||||
case MCA_BTL_OPENIB_PP_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*/
|
/* Close opened QPs if we have them*/
|
||||||
for(qp = 0; qp < mca_btl_openib_component.num_qps; qp++) {
|
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].no_credits_pending_frags[0]);
|
||||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].pending_frags[1]);
|
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(&endpoint->qps[qp].no_credits_pending_frags[1]);
|
||||||
OBJ_DESTRUCT(&endpoint->qps[qp].pending_frags[0]);
|
OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[0]);
|
||||||
OBJ_DESTRUCT(&endpoint->qps[qp].pending_frags[1]);
|
OBJ_DESTRUCT(&endpoint->qps[qp].no_credits_pending_frags[1]);
|
||||||
|
|
||||||
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(
|
MCA_BTL_OPENIB_CLEAN_PENDING_FRAGS(
|
||||||
&endpoint->qps[qp].no_wqe_pending_frags[0]);
|
&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 {
|
typedef struct mca_btl_openib_endpoint_qp_t {
|
||||||
mca_btl_openib_qp_t *qp;
|
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 */
|
available */
|
||||||
opal_list_t no_wqe_pending_frags[2]; /**< put fragments here if there is no wqe
|
opal_list_t no_wqe_pending_frags[2]; /**< put fragments here if there is no wqe
|
||||||
available */
|
available */
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user