Update the the new datatype engine.
This commit was SVN r5998.
Этот коммит содержится в:
родитель
567abb4a63
Коммит
6886716763
@ -823,6 +823,7 @@ int mca_ptl_sm_send(
|
|||||||
hdr->hdr_match.hdr_dst = sendreq->req_send.req_base.req_peer;
|
hdr->hdr_match.hdr_dst = sendreq->req_send.req_base.req_peer;
|
||||||
hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag;
|
hdr->hdr_match.hdr_tag = sendreq->req_send.req_base.req_tag;
|
||||||
hdr->hdr_match.hdr_msg_length = sendreq->req_send.req_bytes_packed;
|
hdr->hdr_match.hdr_msg_length = sendreq->req_send.req_bytes_packed;
|
||||||
|
hdr->hdr_match.hdr_msg_seq = sendreq->req_send.req_base.req_sequence;
|
||||||
|
|
||||||
/* update the offset within the payload */
|
/* update the offset within the payload */
|
||||||
sendreq->req_offset += size;
|
sendreq->req_offset += size;
|
||||||
@ -927,7 +928,7 @@ int mca_ptl_sm_send_continue(
|
|||||||
|
|
||||||
/* pack data in payload buffer */
|
/* pack data in payload buffer */
|
||||||
convertor = &sendreq->req_send.req_convertor;
|
convertor = &sendreq->req_send.req_convertor;
|
||||||
ompi_convertor_prepare_for_send( convertor, 0, offset, NULL );
|
ompi_convertor_set_position( convertor, &offset );
|
||||||
sm_data_ptr = send_frag->buff;
|
sm_data_ptr = send_frag->buff;
|
||||||
|
|
||||||
/* set up the shared memory iovec */
|
/* set up the shared memory iovec */
|
||||||
|
@ -71,7 +71,6 @@ void mca_ptl_sm_matched(
|
|||||||
mca_ptl_sm_frag_t *sm_frag_desc;
|
mca_ptl_sm_frag_t *sm_frag_desc;
|
||||||
struct iovec iov;
|
struct iovec iov;
|
||||||
ompi_convertor_t frag_convertor;
|
ompi_convertor_t frag_convertor;
|
||||||
ompi_proc_t *proc;
|
|
||||||
int free_after,my_local_smp_rank,peer_local_smp_rank, return_status;
|
int free_after,my_local_smp_rank,peer_local_smp_rank, return_status;
|
||||||
uint32_t iov_count;
|
uint32_t iov_count;
|
||||||
size_t max_data;
|
size_t max_data;
|
||||||
@ -86,23 +85,13 @@ void mca_ptl_sm_matched(
|
|||||||
peer_local_smp_rank=sm_frag_desc->queue_index;
|
peer_local_smp_rank=sm_frag_desc->queue_index;
|
||||||
|
|
||||||
/* copy, only if there is data to copy */
|
/* copy, only if there is data to copy */
|
||||||
max_data=0;
|
max_data = 0;
|
||||||
if( 0 < sm_frag_desc->super.frag_base.frag_size ) {
|
if( 0 < sm_frag_desc->super.frag_base.frag_size ) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize convertor and use it to unpack data
|
* Initialize convertor and use it to unpack data
|
||||||
*/
|
*/
|
||||||
OBJ_CONSTRUCT(&frag_convertor, ompi_convertor_t);
|
ompi_convertor_clone_with_position( &(recv_desc->req_recv.req_convertor), &frag_convertor,
|
||||||
proc = ompi_comm_peer_lookup(recv_desc->req_recv.req_base.req_comm,
|
1, &(sm_frag_desc->send_offset) );
|
||||||
frag->frag_base.frag_header.hdr_match.hdr_src);
|
|
||||||
/* write over converter set on the send side */
|
|
||||||
ompi_convertor_copy_and_prepare_for_recv(
|
|
||||||
proc->proc_convertor,
|
|
||||||
recv_desc->req_recv.req_base.req_datatype, /* datatype */
|
|
||||||
recv_desc->req_recv.req_base.req_count, /* count elements */
|
|
||||||
recv_desc->req_recv.req_base.req_addr, /* users buffer */
|
|
||||||
&frag_convertor );
|
|
||||||
ompi_convertor_set_position( &frag_convertor, &(sm_frag_desc->send_offset) );
|
|
||||||
/* convert address from sender's address space to my virtual
|
/* convert address from sender's address space to my virtual
|
||||||
* address space */
|
* address space */
|
||||||
#ifdef SM_COMMON_BASE_ADDR
|
#ifdef SM_COMMON_BASE_ADDR
|
||||||
@ -115,7 +104,6 @@ void mca_ptl_sm_matched(
|
|||||||
iov_count = 1;
|
iov_count = 1;
|
||||||
max_data = iov.iov_len;
|
max_data = iov.iov_len;
|
||||||
ompi_convertor_unpack( &frag_convertor, &iov, &iov_count, &max_data, &free_after );
|
ompi_convertor_unpack( &frag_convertor, &iov, &iov_count, &max_data, &free_after );
|
||||||
OBJ_DESTRUCT(&frag_convertor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* update receive request information */
|
/* update receive request information */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user