Update to the new datatype engine. Jeff will compile the code.
This commit was SVN r3088.
Этот коммит содержится в:
родитель
2982a7b120
Коммит
fd5cd005a0
@ -405,9 +405,10 @@ void mca_ptl_ib_matched(mca_ptl_base_module_t* module,
|
||||
* unex_buffer to application buffer */
|
||||
|
||||
if (header->hdr_frag.hdr_frag_length > 0) {
|
||||
|
||||
struct iovec iov;
|
||||
ompi_proc_t *proc;
|
||||
unsigned int iov_count, max_data;
|
||||
int freeAfter;
|
||||
|
||||
iov.iov_base = frag->frag_base.frag_addr;
|
||||
iov.iov_len = frag->frag_base.frag_size;
|
||||
@ -415,17 +416,16 @@ void mca_ptl_ib_matched(mca_ptl_base_module_t* module,
|
||||
proc = ompi_comm_peer_lookup(request->req_base.req_comm,
|
||||
request->req_base.req_peer);
|
||||
|
||||
ompi_convertor_copy(proc->proc_convertor,
|
||||
&frag->frag_base.frag_convertor);
|
||||
ompi_convertor_copy(proc->proc_convertor, &frag->frag_base.frag_convertor);
|
||||
|
||||
ompi_convertor_init_for_recv(
|
||||
&frag->frag_base.frag_convertor,
|
||||
0,
|
||||
request->req_base.req_datatype,
|
||||
request->req_base.req_count,
|
||||
request->req_base.req_addr,
|
||||
header->hdr_frag.hdr_frag_offset);
|
||||
ompi_convertor_unpack(&frag->frag_base.frag_convertor, &iov, 1);
|
||||
ompi_convertor_init_for_recv( &frag->frag_base.frag_convertor,
|
||||
0,
|
||||
request->req_base.req_datatype,
|
||||
request->req_base.req_count,
|
||||
request->req_base.req_addr,
|
||||
header->hdr_frag.hdr_frag_offset,
|
||||
NULL );
|
||||
ompi_convertor_unpack(&frag->frag_base.frag_convertor, &iov, &iov_count, &max_data, &freeAfter);
|
||||
}
|
||||
mca_ptl_ib_recv_frag_done(header, frag, request);
|
||||
}
|
||||
|
@ -84,7 +84,8 @@ int mca_ptl_ib_send_frag_init(mca_ptl_ib_send_frag_t* sendfrag,
|
||||
/* initialize convertor */
|
||||
if(size_in > 0) {
|
||||
ompi_convertor_t *convertor;
|
||||
int rc;
|
||||
int rc, freeAfter;
|
||||
unsigned int iov_count, max_data;
|
||||
|
||||
/* first fragment (eager send) and first fragment of long
|
||||
* protocol can use the convertor initialized on the request,
|
||||
@ -94,16 +95,15 @@ int mca_ptl_ib_send_frag_init(mca_ptl_ib_send_frag_t* sendfrag,
|
||||
if( offset <= mca_ptl_ib_module.super.ptl_first_frag_size ) {
|
||||
convertor = &sendreq->req_convertor;
|
||||
} else {
|
||||
|
||||
convertor = &sendfrag->frag_send.frag_base.frag_convertor;
|
||||
ompi_convertor_copy(&sendreq->req_convertor, convertor);
|
||||
ompi_convertor_init_for_send(
|
||||
convertor,
|
||||
0,
|
||||
sendreq->req_base.req_datatype,
|
||||
sendreq->req_base.req_count,
|
||||
sendreq->req_base.req_addr,
|
||||
offset);
|
||||
ompi_convertor_init_for_send( convertor,
|
||||
0,
|
||||
sendreq->req_base.req_datatype,
|
||||
sendreq->req_base.req_count,
|
||||
sendreq->req_base.req_addr,
|
||||
offset,
|
||||
NULL );
|
||||
}
|
||||
|
||||
|
||||
@ -113,10 +113,10 @@ int mca_ptl_ib_send_frag_init(mca_ptl_ib_send_frag_t* sendfrag,
|
||||
*/
|
||||
iov.iov_base = &sendfrag->ib_buf.buf[header_length];
|
||||
iov.iov_len = size_in;
|
||||
iov_count = 1;
|
||||
max_data = size_in;
|
||||
|
||||
if((rc = ompi_convertor_pack(convertor,
|
||||
&iov, 1))
|
||||
< 0) {
|
||||
if((rc = ompi_convertor_pack(convertor,&iov, &iov_count, &max_data, &freeAfter)) < 0) {
|
||||
|
||||
ompi_output(0, "Unable to pack data");
|
||||
|
||||
@ -347,24 +347,28 @@ int mca_ptl_ib_put_frag_init(mca_ptl_ib_send_frag_t *sendfrag,
|
||||
if(size_in > 0 && 0) {
|
||||
struct iovec iov;
|
||||
ompi_convertor_t *convertor;
|
||||
unsigned int iov_count, max_data;
|
||||
int freeAfter;
|
||||
|
||||
if( offset <= mca_ptl_ib_module.super.ptl_first_frag_size) {
|
||||
convertor = &req->req_convertor;
|
||||
} else {
|
||||
convertor = &sendfrag->frag_send.frag_base.frag_convertor;
|
||||
ompi_convertor_copy(&req->req_convertor, convertor);
|
||||
ompi_convertor_init_for_send(
|
||||
convertor,
|
||||
0,
|
||||
req->req_base.req_datatype,
|
||||
req->req_base.req_count,
|
||||
req->req_base.req_addr,
|
||||
offset);
|
||||
ompi_convertor_init_for_send( convertor,
|
||||
0,
|
||||
req->req_base.req_datatype,
|
||||
req->req_base.req_count,
|
||||
req->req_base.req_addr,
|
||||
offset,
|
||||
NULL );
|
||||
}
|
||||
iov.iov_base = &sendfrag->ib_buf.buf[sizeof(mca_ptl_base_frag_header_t)];
|
||||
iov.iov_len = size_in;
|
||||
iov_count = 1;
|
||||
max_data = size_in;
|
||||
|
||||
rc = ompi_convertor_pack(convertor, &iov, 1);
|
||||
rc = ompi_convertor_pack(convertor, &iov, &iov_count, &max_data, &freeAfter);
|
||||
if (rc < 0) {
|
||||
ompi_output (0, "[%s:%d] Unable to pack data\n",
|
||||
__FILE__, __LINE__);
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user