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.
Этот коммит содержится в:
родитель
37d5267895
Коммит
ba2dbff82d
@ -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);
|
||||
);
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user