1
1

Check for addressability in MPI_*_init, since buffer passed by the application should have been already allocated, but might be not initialized.

Check in MPI_Start / MPI_Startall for defined-ness of the buffer passed into the send request(s).

This commit was SVN r24054.
Этот коммит содержится в:
Shiqing Fan 2010-11-16 01:01:12 +00:00
родитель 37d5267895
Коммит ba2dbff82d
7 изменённых файлов: 15 добавлений и 0 удалений

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

@ -113,6 +113,11 @@ int mca_pml_bfo_start(size_t count, ompi_request_t** requests)
switch(pml_request->req_type) {
case MCA_PML_REQUEST_SEND:
{
MEMCHECKER(
memchecker_call(&opal_memchecker_base_isdefined,
pml_request->req_addr, pml_request->req_count,
pml_request->req_datatype);
);
mca_pml_bfo_send_request_t* sendreq = (mca_pml_bfo_send_request_t*)pml_request;
if( reuse_old_request && (sendreq->req_send.req_bytes_packed != 0) ) {
size_t offset = 0;

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

@ -112,6 +112,11 @@ int mca_pml_ob1_start(size_t count, ompi_request_t** requests)
switch(pml_request->req_type) {
case MCA_PML_REQUEST_SEND:
{
MEMCHECKER(
memchecker_call(&opal_memchecker_base_isdefined,
pml_request->req_addr, pml_request->req_count,
pml_request->req_datatype);
);
mca_pml_ob1_send_request_t* sendreq = (mca_pml_ob1_send_request_t*)pml_request;
if( reuse_old_request && (sendreq->req_send.req_bytes_packed != 0) ) {
size_t offset = 0;

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

@ -45,6 +45,7 @@ int MPI_Bsend_init(void *buf, int count, MPI_Datatype type,
MEMCHECKER(
memchecker_datatype(type);
memchecker_call(&opal_memchecker_base_isaddressable, buf, count, type);
memchecker_comm(comm);
);

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

@ -44,6 +44,7 @@ int MPI_Recv_init(void *buf, int count, MPI_Datatype type, int source,
MEMCHECKER(
memchecker_datatype(type);
memchecker_call(&opal_memchecker_base_isaddressable, buf, count, type);
memchecker_comm(comm);
);

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

@ -46,6 +46,7 @@ int MPI_Rsend_init(void *buf, int count, MPI_Datatype type,
MEMCHECKER(
memchecker_datatype(type);
memchecker_call(&opal_memchecker_base_isaddressable, buf, count, type);
memchecker_comm(comm);
);

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

@ -46,6 +46,7 @@ int MPI_Send_init(void *buf, int count, MPI_Datatype type,
MEMCHECKER(
memchecker_datatype(type);
memchecker_call(&opal_memchecker_base_isaddressable, buf, count, type);
memchecker_comm(comm);
);

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

@ -46,6 +46,7 @@ int MPI_Ssend_init(void *buf, int count, MPI_Datatype type,
MEMCHECKER(
memchecker_datatype(type);
memchecker_call(&opal_memchecker_base_isaddressable, buf, count, type);
memchecker_comm(comm);
);