- corrections
This commit was SVN r3676.
Этот коммит содержится в:
родитель
3abff4276c
Коммит
35b5ae0503
@ -216,15 +216,19 @@ int mca_ptl_mx_send(
|
||||
/* first fragment - need to try and match at the receiver */
|
||||
if(offset == 0) {
|
||||
hdr->hdr_common.hdr_flags = flags;
|
||||
hdr->hdr_match.hdr_src = (uint16_t)sendreq->req_base.req_comm->c_my_rank;
|
||||
hdr->hdr_match.hdr_dst = (uint16_t)sendreq->req_base.req_peer;
|
||||
hdr->hdr_match.hdr_src = sendreq->req_base.req_comm->c_my_rank;
|
||||
hdr->hdr_match.hdr_dst = sendreq->req_base.req_peer;
|
||||
hdr->hdr_match.hdr_tag = sendreq->req_base.req_tag;
|
||||
hdr->hdr_match.hdr_msg_length = sendreq->req_bytes_packed;
|
||||
hdr->hdr_match.hdr_msg_seq = sendreq->req_base.req_sequence;
|
||||
|
||||
/* for the first 32K - send header for matching + data */
|
||||
segments = sendfrag->frag_segments;
|
||||
sendfrag->frag_segment_count = 2;
|
||||
if(sendfrag->frag_send.frag_base.frag_size > 0) {
|
||||
sendfrag->frag_segment_count = 2;
|
||||
} else {
|
||||
sendfrag->frag_segment_count = 1;
|
||||
}
|
||||
|
||||
/* if an acknoweldgment is not required - can get by with a shorter header */
|
||||
if((flags & MCA_PTL_FLAGS_ACK) == 0) {
|
||||
@ -500,7 +504,7 @@ void mca_ptl_mx_matched(
|
||||
request->req_base.req_addr, /* users buffer */
|
||||
0, /* offset in bytes into packed buffer */
|
||||
NULL ); /* not allocating memory */
|
||||
ompi_convertor_get_packed_size(convertor, &request->req_bytes_packed);
|
||||
/*ompi_convertor_get_packed_size(convertor, &request->req_bytes_packed); */
|
||||
|
||||
iov.iov_base = mx_frag->frag_data;
|
||||
iov.iov_len = mx_frag->frag_size;
|
||||
|
@ -198,7 +198,6 @@ static void mca_ptl_mx_match(void* context, uint64_t match_value, int size)
|
||||
|
||||
frag->frag_size = size;
|
||||
frag->frag_recv.frag_request = request;
|
||||
frag->frag_recv.frag_base.frag_peer = NULL;
|
||||
frag->frag_recv.frag_base.frag_owner = &ptl->super;
|
||||
frag->frag_recv.frag_base.frag_size = frag->frag_size;
|
||||
frag->frag_recv.frag_base.frag_header.hdr_common.hdr_type =
|
||||
@ -406,10 +405,13 @@ int mca_ptl_mx_add_procs(
|
||||
size_t n;
|
||||
for( n = 0; n < nprocs; n++ ) {
|
||||
int rc;
|
||||
mca_ptl_mx_proc_t *ptl_proc = mca_ptl_mx_proc_create(procs[n]);
|
||||
mca_ptl_mx_proc_t *ptl_proc;
|
||||
mca_ptl_mx_peer_t* ptl_peer;
|
||||
|
||||
if(ptl_proc == NULL)
|
||||
/* Dont let mx register for self */
|
||||
if( proc_self == procs[n] ) continue;
|
||||
|
||||
if((ptl_proc = mca_ptl_mx_proc_create(procs[n])) == NULL)
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
|
||||
/* peer doesn't export enough addresses */
|
||||
|
@ -95,7 +95,7 @@ do {
|
||||
case MCA_PTL_HDR_TYPE_RNDV: \
|
||||
{ \
|
||||
recvfrag->frag_size = hdr->hdr_rndv.hdr_frag_length; \
|
||||
MCA_PTL_MX_RECV_FRAG_MATCH(recvfrag,hdr); \
|
||||
MCA_PTL_MX_RECV_FRAG_RNDV(recvfrag,hdr); \
|
||||
MCA_PTL_MX_POST(ptl, MCA_PTL_HDR_TYPE_RNDV, \
|
||||
sizeof(mca_ptl_base_rendezvous_header_t)); \
|
||||
break; \
|
||||
|
@ -33,6 +33,7 @@ OBJ_CLASS_INSTANCE(
|
||||
static void mca_ptl_mx_recv_frag_construct(mca_ptl_mx_recv_frag_t* frag)
|
||||
{
|
||||
/* one time initialization */
|
||||
frag->frag_recv.frag_base.frag_peer = (mca_ptl_base_peer_t*)0x01;
|
||||
frag->frag_segments[0].segment_ptr = &frag->frag_recv.frag_base.frag_header;
|
||||
frag->frag_segments[0].segment_length = sizeof(frag->frag_recv.frag_base.frag_header);
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ do { \
|
||||
#define MCA_PTL_MX_RECV_FRAG_RNDV(frag, hdr) \
|
||||
do { \
|
||||
if(hdr->hdr_common.hdr_flags & MCA_PTL_FLAGS_NBO) { \
|
||||
MCA_PTL_BASE_MATCH_HDR_NTOH(hdr->hdr_match); \
|
||||
MCA_PTL_BASE_RNDV_HDR_NTOH(hdr->hdr_rndv); \
|
||||
} \
|
||||
ptl->super.ptl_match(&ptl->super, &frag->frag_recv, &hdr->hdr_match); \
|
||||
} while(0)
|
||||
|
@ -79,6 +79,7 @@ OBJ_CLASS_DECLARATION(mca_ptl_mx_send_frag_t);
|
||||
(ack)->frag_send.frag_base.frag_owner = ptl; \
|
||||
(ack)->frag_send.frag_base.frag_addr = NULL; \
|
||||
(ack)->frag_send.frag_base.frag_size = 0; \
|
||||
(ack)->frag_segments[0].segment_length = sizeof(mca_ptl_base_ack_header_t); \
|
||||
(ack)->frag_segment_count = 1; \
|
||||
(ack)->frag_free = 0; \
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user