Merge pull request #6556 from EmmanuelBRELLE/PR_fix_local_handle_in_PUT_message
pml/ob1: fixed local handle sent during PUT control message
Этот коммит содержится в:
Коммит
399b7133ab
@ -408,6 +408,7 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
|
|||||||
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
#if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
|
||||||
ompi_proc_t* proc = (ompi_proc_t*)recvreq->req_recv.req_base.req_proc;
|
ompi_proc_t* proc = (ompi_proc_t*)recvreq->req_recv.req_base.req_proc;
|
||||||
#endif
|
#endif
|
||||||
|
mca_btl_base_registration_handle_t *local_handle = NULL;
|
||||||
mca_bml_base_btl_t *bml_btl = frag->rdma_bml;
|
mca_bml_base_btl_t *bml_btl = frag->rdma_bml;
|
||||||
mca_btl_base_descriptor_t *ctl;
|
mca_btl_base_descriptor_t *ctl;
|
||||||
mca_pml_ob1_rdma_hdr_t *hdr;
|
mca_pml_ob1_rdma_hdr_t *hdr;
|
||||||
@ -416,6 +417,12 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
|
|||||||
|
|
||||||
reg_size = bml_btl->btl->btl_registration_handle_size;
|
reg_size = bml_btl->btl->btl_registration_handle_size;
|
||||||
|
|
||||||
|
if (frag->local_handle) {
|
||||||
|
local_handle = frag->local_handle;
|
||||||
|
} else if (recvreq->local_handle) {
|
||||||
|
local_handle = recvreq->local_handle;
|
||||||
|
}
|
||||||
|
|
||||||
/* prepare a descriptor for rdma control message */
|
/* prepare a descriptor for rdma control message */
|
||||||
mca_bml_base_alloc (bml_btl, &ctl, MCA_BTL_NO_ORDER, sizeof (mca_pml_ob1_rdma_hdr_t) + reg_size,
|
mca_bml_base_alloc (bml_btl, &ctl, MCA_BTL_NO_ORDER, sizeof (mca_pml_ob1_rdma_hdr_t) + reg_size,
|
||||||
MCA_BTL_DES_FLAGS_PRIORITY | MCA_BTL_DES_FLAGS_BTL_OWNERSHIP |
|
MCA_BTL_DES_FLAGS_PRIORITY | MCA_BTL_DES_FLAGS_BTL_OWNERSHIP |
|
||||||
@ -429,7 +436,7 @@ static int mca_pml_ob1_recv_request_put_frag (mca_pml_ob1_rdma_frag_t *frag)
|
|||||||
hdr = (mca_pml_ob1_rdma_hdr_t *) ctl->des_segments->seg_addr.pval;
|
hdr = (mca_pml_ob1_rdma_hdr_t *) ctl->des_segments->seg_addr.pval;
|
||||||
mca_pml_ob1_rdma_hdr_prepare (hdr, (!recvreq->req_ack_sent) ? MCA_PML_OB1_HDR_TYPE_ACK : 0,
|
mca_pml_ob1_rdma_hdr_prepare (hdr, (!recvreq->req_ack_sent) ? MCA_PML_OB1_HDR_TYPE_ACK : 0,
|
||||||
recvreq->remote_req_send.lval, frag, recvreq, frag->rdma_offset,
|
recvreq->remote_req_send.lval, frag, recvreq, frag->rdma_offset,
|
||||||
frag->local_address, frag->rdma_length, frag->local_handle,
|
frag->local_address, frag->rdma_length, local_handle,
|
||||||
reg_size);
|
reg_size);
|
||||||
ob1_hdr_hton(hdr, MCA_PML_OB1_HDR_TYPE_PUT, proc);
|
ob1_hdr_hton(hdr, MCA_PML_OB1_HDR_TYPE_PUT, proc);
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user