1
1

Merge pull request #5319 from edgargabriel/pr/ibm-testsuite-fixes2

Pr/ibm testsuite fixes2
Этот коммит содержится в:
Edgar Gabriel 2018-06-21 19:46:22 -05:00 коммит произвёл GitHub
родитель c500739293 743e0dff5a
Коммит d5dd008193
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 36 добавлений и 5 удалений

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

@ -99,7 +99,7 @@ int mca_common_ompio_file_read (ompio_file_t *fh,
OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count); OMPIO_CUDA_PREPARE_BUF(fh,buf,count,datatype,tbuf,&convertor,max_data,decoded_iov,iov_count);
} }
else { else {
mca_common_ompio_decode_datatype (fh, mca_common_ompio_decode_datatype (fh,
datatype, datatype,
@ -118,6 +118,12 @@ int mca_common_ompio_file_read (ompio_file_t *fh,
&decoded_iov, &decoded_iov,
&iov_count); &iov_count);
#endif #endif
if ( 0 < max_data && 0 == fh->f_iov_count ) {
if ( MPI_STATUS_IGNORE != status ) {
status->_ucount = 0;
}
return OMPI_SUCCESS;
}
if ( -1 == OMPIO_MCA_GET(fh, cycle_buffer_size )) { if ( -1 == OMPIO_MCA_GET(fh, cycle_buffer_size )) {
bytes_per_cycle = max_data; bytes_per_cycle = max_data;
@ -271,6 +277,14 @@ int mca_common_ompio_file_iread (ompio_file_t *fh,
&decoded_iov, &decoded_iov,
&iov_count); &iov_count);
#endif #endif
if ( 0 < max_data && 0 == fh->f_iov_count ) {
ompio_req->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS;
ompio_req->req_ompi.req_status._ucount = 0;
ompi_request_complete (&ompio_req->req_ompi, false);
*request = (ompi_request_t *) ompio_req;
return OMPI_SUCCESS;
}
// Non-blocking operations have to occur in a single cycle // Non-blocking operations have to occur in a single cycle
j = fh->f_index_in_file_view; j = fh->f_index_in_file_view;

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

@ -96,6 +96,13 @@ int mca_common_ompio_file_write (ompio_file_t *fh,
&decoded_iov, &decoded_iov,
&iov_count); &iov_count);
#endif #endif
if ( 0 < max_data && 0 == fh->f_iov_count ) {
if ( MPI_STATUS_IGNORE != status ) {
status->_ucount = 0;
}
return OMPI_SUCCESS;
}
if ( -1 == OMPIO_MCA_GET(fh, cycle_buffer_size )) { if ( -1 == OMPIO_MCA_GET(fh, cycle_buffer_size )) {
bytes_per_cycle = max_data; bytes_per_cycle = max_data;
} }
@ -242,6 +249,14 @@ int mca_common_ompio_file_iwrite (ompio_file_t *fh,
&decoded_iov, &decoded_iov,
&iov_count); &iov_count);
#endif #endif
if ( 0 < max_data && 0 == fh->f_iov_count ) {
ompio_req->req_ompi.req_status.MPI_ERROR = OMPI_SUCCESS;
ompio_req->req_ompi.req_status._ucount = 0;
ompi_request_complete (&ompio_req->req_ompi, false);
*request = (ompi_request_t *) ompio_req;
return OMPI_SUCCESS;
}
j = fh->f_index_in_file_view; j = fh->f_index_in_file_view;
/* Non blocking operations have to occur in a single cycle */ /* Non blocking operations have to occur in a single cycle */

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

@ -33,7 +33,7 @@
int int
mca_sharedfp_lockedfile_seek (ompio_file_t *fh, mca_sharedfp_lockedfile_seek (ompio_file_t *fh,
OMPI_MPI_OFFSET_TYPE offset, int whence) OMPI_MPI_OFFSET_TYPE off, int whence)
{ {
int ret = OMPI_SUCCESS; int ret = OMPI_SUCCESS;
struct mca_sharedfp_base_data_t *sh = NULL; struct mca_sharedfp_base_data_t *sh = NULL;
@ -41,6 +41,7 @@ mca_sharedfp_lockedfile_seek (ompio_file_t *fh,
int fd_lockedfilehandle; int fd_lockedfilehandle;
/* flock structure that is used to setup the desired fcntl operation */ /* flock structure that is used to setup the desired fcntl operation */
struct flock fl; struct flock fl;
OMPI_MPI_OFFSET_TYPE offset, end_position=0;
if(fh->f_sharedfp_data==NULL){ if(fh->f_sharedfp_data==NULL){
opal_output(ompi_sharedfp_base_framework.framework_output, opal_output(ompi_sharedfp_base_framework.framework_output,
@ -49,6 +50,7 @@ mca_sharedfp_lockedfile_seek (ompio_file_t *fh,
} }
sh = fh->f_sharedfp_data; sh = fh->f_sharedfp_data;
offset = off * fh->f_etype_size;
if( 0 == fh->f_rank ){ if( 0 == fh->f_rank ){
if ( MPI_SEEK_SET == whence ){ if ( MPI_SEEK_SET == whence ){
@ -74,7 +76,6 @@ mca_sharedfp_lockedfile_seek (ompio_file_t *fh,
} }
} }
else if( MPI_SEEK_END == whence ){ else if( MPI_SEEK_END == whence ){
OMPI_MPI_OFFSET_TYPE end_position=0;
mca_common_ompio_file_get_size( fh,&end_position); mca_common_ompio_file_get_size( fh,&end_position);
offset = end_position + offset; offset = end_position + offset;

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

@ -34,10 +34,10 @@
int int
mca_sharedfp_sm_seek (ompio_file_t *fh, mca_sharedfp_sm_seek (ompio_file_t *fh,
OMPI_MPI_OFFSET_TYPE offset, int whence) OMPI_MPI_OFFSET_TYPE off, int whence)
{ {
int status=0; int status=0;
OMPI_MPI_OFFSET_TYPE end_position=0; OMPI_MPI_OFFSET_TYPE offset, end_position=0;
int ret = OMPI_SUCCESS; int ret = OMPI_SUCCESS;
struct mca_sharedfp_base_data_t *sh = NULL; struct mca_sharedfp_base_data_t *sh = NULL;
struct mca_sharedfp_sm_data * sm_data = NULL; struct mca_sharedfp_sm_data * sm_data = NULL;
@ -50,6 +50,7 @@ mca_sharedfp_sm_seek (ompio_file_t *fh,
} }
sh = fh->f_sharedfp_data; sh = fh->f_sharedfp_data;
offset = off * fh->f_etype_size;
if( 0 == fh->f_rank ){ if( 0 == fh->f_rank ){
if ( MPI_SEEK_SET == whence){ if ( MPI_SEEK_SET == whence){