diff --git a/src/mca/pml/ob1/pml_ob1_component.c b/src/mca/pml/ob1/pml_ob1_component.c index 94d0f0f5e6..2e2d094361 100644 --- a/src/mca/pml/ob1/pml_ob1_component.c +++ b/src/mca/pml/ob1/pml_ob1_component.c @@ -117,7 +117,7 @@ int mca_pml_ob1_component_open(void) mca_pml_ob1.rdma_threshold = mca_pml_ob1_param_register_int("rdma_threshold", 1024*1024); mca_pml_ob1.rdma_offset = - mca_pml_ob1_param_register_int("rdma_offset", 512*1024); + mca_pml_ob1_param_register_int("rdma_offset", 1024*1024); return mca_bmi_base_open(); } diff --git a/src/mca/pml/ob1/pml_ob1_recvreq.c b/src/mca/pml/ob1/pml_ob1_recvreq.c index cba902ce19..198c1ad6e3 100644 --- a/src/mca/pml/ob1/pml_ob1_recvreq.c +++ b/src/mca/pml/ob1/pml_ob1_recvreq.c @@ -164,6 +164,7 @@ static void mca_pml_ob1_recv_request_ack( ack->hdr_dst_req.pval = recvreq; /* initialize descriptor */ + des->des_flags |= MCA_BMI_DES_FLAGS_PRIORITY; des->des_cbfunc = mca_pml_ob1_send_ctl_complete; des->des_cbdata = ep; @@ -341,6 +342,9 @@ void mca_pml_ob1_recv_request_schedule(mca_pml_ob1_recv_request_t* recvreq) } dst->des_cbdata = recvreq; + /* run progress as the prepare (pinning) can take some time */ + mca_pml_ob1_progress(); + /* prepare a descriptor for rdma control message */ hdr_size = sizeof(mca_pml_ob1_rdma_hdr_t); if(dst->des_dst_cnt > 1) { @@ -355,6 +359,7 @@ void mca_pml_ob1_recv_request_schedule(mca_pml_ob1_recv_request_t* recvreq) OMPI_THREAD_UNLOCK(&mca_pml_ob1.lock); break; } + ctl->des_flags |= MCA_BMI_DES_FLAGS_PRIORITY; ctl->des_cbfunc = mca_pml_ob1_send_ctl_complete; ctl->des_cbdata = ep; @@ -386,8 +391,6 @@ void mca_pml_ob1_recv_request_schedule(mca_pml_ob1_recv_request_t* recvreq) OMPI_THREAD_UNLOCK(&mca_pml_ob1.lock); break; } - rc = ep->bmi->bmi_component->bmi_progress(); - } } while(OMPI_THREAD_ADD32(&recvreq->req_lock,-1) > 0); } diff --git a/src/mca/pml/ob1/pml_ob1_sendreq.c b/src/mca/pml/ob1/pml_ob1_sendreq.c index e485f797be..ee2ccc84b5 100644 --- a/src/mca/pml/ob1/pml_ob1_sendreq.c +++ b/src/mca/pml/ob1/pml_ob1_sendreq.c @@ -323,6 +323,7 @@ int mca_pml_ob1_send_request_start( descriptor->des_cbfunc = mca_pml_ob1_send_completion; } } + descriptor->des_flags |= MCA_BMI_DES_FLAGS_PRIORITY; descriptor->des_cbdata = sendreq; OMPI_THREAD_ADD32(&sendreq->req_pipeline_depth,1); @@ -499,6 +500,7 @@ static void mca_pml_ob1_put_completion( OMPI_THREAD_LOCK(&mca_pml_ob1.lock); goto cleanup; } + fin->des_flags |= MCA_BMI_DES_FLAGS_PRIORITY; fin->des_cbfunc = mca_pml_ob1_fin_completion; fin->des_cbdata = frag;