1
1
This commit was SVN r3676.
Этот коммит содержится в:
Tim Woodall 2004-12-02 01:00:59 +00:00
родитель 3abff4276c
Коммит 35b5ae0503
6 изменённых файлов: 17 добавлений и 9 удалений

Просмотреть файл

@ -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; \
}