diff --git a/src/mca/bmi/ib/bmi_ib_component.c b/src/mca/bmi/ib/bmi_ib_component.c index 68dc73555f..6ed8c67655 100644 --- a/src/mca/bmi/ib/bmi_ib_component.c +++ b/src/mca/bmi/ib/bmi_ib_component.c @@ -186,6 +186,14 @@ int mca_bmi_ib_component_open(void) mca_bmi_ib_module.ib_src_path_bits = mca_bmi_ib_param_register_int("ib_src_path_bits", 0); + + mca_bmi_ib_module.super.bmi_min_rdma_size = + mca_bmi_ib_param_register_int("bmi_min_rdma_size", + 256*1024); + mca_bmi_ib_module.super.bmi_max_rdma_size = + mca_bmi_ib_param_register_int("bmi_max_rdma_size", + 512*1024); + mca_bmi_ib_module.super.bmi_flags = MCA_BMI_FLAGS_RDMA; @@ -523,7 +531,7 @@ int mca_bmi_ib_component_progress() DEBUG_OUT(0, "%s:%d ib recv under redesign\n", __FILE__, __LINE__); frag = (mca_bmi_ib_frag_t*) comp.id; - frag->segment.seg_len = comp.byte_len-((unsigned char*) frag->segment.seg_len - (unsigned char*) frag->hdr); + frag->segment.seg_len = comp.byte_len-((unsigned char*) frag->segment.seg_addr.pval - (unsigned char*) frag->hdr); /* advance the segment address past the header and subtract from the length..*/ ib_bmi->ib_reg[frag->hdr->tag].cbfunc(&ib_bmi->super, frag->hdr->tag, &frag->base, ib_bmi->ib_reg[frag->hdr->tag].cbdata); diff --git a/src/mca/pml/ob1/pml_ob1_recvfrag.c b/src/mca/pml/ob1/pml_ob1_recvfrag.c index 96839940fb..49242ed5cb 100644 --- a/src/mca/pml/ob1/pml_ob1_recvfrag.c +++ b/src/mca/pml/ob1/pml_ob1_recvfrag.c @@ -70,7 +70,7 @@ void mca_pml_ob1_recv_frag_callback( case MCA_PML_OB1_HDR_TYPE_MATCH: case MCA_PML_OB1_HDR_TYPE_RNDV: { - mca_pml_ob1_recv_frag_match(bmi,&hdr->hdr_match,segments,des->des_src_cnt); + mca_pml_ob1_recv_frag_match(bmi,&hdr->hdr_match,segments,des->des_dst_cnt); break; } case MCA_PML_OB1_HDR_TYPE_ACK: @@ -87,7 +87,7 @@ void mca_pml_ob1_recv_frag_callback( { mca_pml_ob1_recv_request_t* recvreq = (mca_pml_ob1_recv_request_t*) hdr->hdr_frag.hdr_dst_req.pval; - mca_pml_ob1_recv_request_progress(recvreq,bmi,segments,des->des_src_cnt); + mca_pml_ob1_recv_request_progress(recvreq,bmi,segments,des->des_dst_cnt); break; } case MCA_PML_OB1_HDR_TYPE_PUT: @@ -102,7 +102,7 @@ void mca_pml_ob1_recv_frag_callback( mca_bmi_base_descriptor_t* dst = (mca_bmi_base_descriptor_t*) hdr->hdr_fin.hdr_dst.pval; mca_pml_ob1_recv_request_t* recvreq = (mca_pml_ob1_recv_request_t*)dst->des_cbdata; - mca_pml_ob1_recv_request_progress(recvreq,bmi,segments,des->des_src_cnt); + mca_pml_ob1_recv_request_progress(recvreq,bmi,segments,des->des_dst_cnt); bmi->bmi_free(bmi,dst); break; }