[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2-324-gcd51b6f

Service Account noreply at mpich.org
Wed May 25 10:33:46 CDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  cd51b6f0bd2f053ef1bf4dc9339ca40c5ef48cfa (commit)
       via  9220062cd25625b64692005378f3003cb075d5fd (commit)
       via  08de58ea0f65b5b201eee3dd448f1814093a9f7a (commit)
       via  9559fd65c08e179947cff6981dceb8ac35c04672 (commit)
      from  a131e534d26ea79ba028435b2a162e14b5c7764f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/cd51b6f0bd2f053ef1bf4dc9339ca40c5ef48cfa

commit cd51b6f0bd2f053ef1bf4dc9339ca40c5ef48cfa
Author: Rob Latham <robl at mcs.anl.gov>
Date:   Tue May 24 15:47:26 2016 -0500

    promote types for 64-to-32 warnings
    
    'long' should be large enough to hold all MPL_time_t cases
    
    No Reviewer

diff --git a/src/mpl/src/timer/mpl_timer_clock_gettime.c b/src/mpl/src/timer/mpl_timer_clock_gettime.c
index e42431d..6c081fa 100644
--- a/src/mpl/src/timer/mpl_timer_clock_gettime.c
+++ b/src/mpl/src/timer/mpl_timer_clock_gettime.c
@@ -34,7 +34,7 @@ int MPL_wtime_todouble(MPL_time_t * t, double *val)
 
 int MPL_wtime_acc(MPL_time_t * t1, MPL_time_t * t2, MPL_time_t * t3)
 {
-    int nsec, sec;
+    long nsec, sec;
 
     nsec = t2->tv_nsec - t1->tv_nsec;
     sec = t2->tv_sec - t1->tv_sec;

http://git.mpich.org/mpich.git/commitdiff/9220062cd25625b64692005378f3003cb075d5fd

commit 9220062cd25625b64692005378f3003cb075d5fd
Author: Rob Latham <robl at mcs.anl.gov>
Date:   Tue May 24 15:45:21 2016 -0500

    srand and 64-to-32 warnings
    
    time returns long, but srand takes an int.  make sure we are explicitly
    taking the most relvant (lower) 32 bits from time.

diff --git a/src/mpi/romio/adio/common/shfp_fname.c b/src/mpi/romio/adio/common/shfp_fname.c
index 5c84381..1e76885 100644
--- a/src/mpi/romio/adio/common/shfp_fname.c
+++ b/src/mpi/romio/adio/common/shfp_fname.c
@@ -39,7 +39,9 @@ void ADIOI_Shfp_fname(ADIO_File fd, int rank, int *error_code)
     fd->shared_fp_fname = (char *) ADIOI_Malloc(PATH_MAX);
 
     if (!rank) {
-        srand(time(NULL));
+	/* srand takes int but time returns long; keep the lower and most
+	 * significant  32 bits */
+        srand(time(NULL)& 0xffffffff);
         i = rand();
 	pid = (int)getpid();
 	
diff --git a/src/mpi/romio/mpi-io/mpir_cst_filesys.c b/src/mpi/romio/mpi-io/mpir_cst_filesys.c
index c6c5ca6..3ef9429 100644
--- a/src/mpi/romio/mpi-io/mpir_cst_filesys.c
+++ b/src/mpi/romio/mpi-io/mpir_cst_filesys.c
@@ -108,7 +108,7 @@ int MPIR_Comm_split_filesystem(MPI_Comm comm, int key, const char *dirname, MPI_
         int r, pid;
 
         /* same algorithim as shared file pointer name */
-        srand(time(NULL));
+        srand(time(NULL) & 0xffffffff);
         r = rand();
         pid = (int) getpid();
 

http://git.mpich.org/mpich.git/commitdiff/08de58ea0f65b5b201eee3dd448f1814093a9f7a

commit 08de58ea0f65b5b201eee3dd448f1814093a9f7a
Author: Gilles Gouaillardet <gilles.gouaillardet at iferc.org>
Date:   Thu Jan 30 17:02:54 2014 +0900

    Add wrap retry logic into romio/adio/ad_lustre.
    
    Since [p](read|write) can return with less data than requested,
    some wrap retry logic has been added in ad_lustre.
    For example, in my test environment, a 4GB write requires
    3 calls to write ( write returns ~2GB, ~2GB and 8kB).
    read/write were replaced with pread/pwrite for thread safety.
    "obviously short" pread/pwrite are not wrapped yet.
    
    Fixes #2012
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c b/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
index 31c86be..ffd096a 100644
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c
@@ -16,12 +16,12 @@
 
 #define LUSTRE_MEMALIGN (1<<12)  /* to use page_shift */
 
-static void ADIOI_LUSTRE_Aligned_Mem_File_Write(ADIO_File fd, const void *buf, int len,
-              ADIO_Offset offset, int *err);
-static void ADIOI_LUSTRE_Aligned_Mem_File_Write(ADIO_File fd, const void *buf, int len,
-              ADIO_Offset offset, int *err)
+static void ADIOI_LUSTRE_Aligned_Mem_File_Write(ADIO_File fd, const void *buf, MPI_Count len,
+              ADIO_Offset offset, ssize_t *err);
+static void ADIOI_LUSTRE_Aligned_Mem_File_Write(ADIO_File fd, const void *buf, MPI_Count len,
+              ADIO_Offset offset, ssize_t *err)
 {
-    int rem, size, nbytes;
+    ssize_t rem, size, nbytes;
     if (!(len % fd->d_miniosz) && (len >= fd->d_miniosz)) {
 	*err = pwrite(fd->fd_direct, buf, len, offset);
     } else if (len < fd->d_miniosz) {
@@ -29,18 +29,22 @@ static void ADIOI_LUSTRE_Aligned_Mem_File_Write(ADIO_File fd, const void *buf, i
     } else {
 	rem = len % fd->d_miniosz;
 	size = len - rem;
-	nbytes = pwrite(fd->fd_direct, buf, size, offset);
-	nbytes += pwrite(fd->fd_sys, ((char *)buf) + size, rem, offset+size);
-	*err = nbytes;
+	*err = pwrite(fd->fd_direct, buf, size, offset);
+        if (*err == -1) return;
+        nbytes = *err;
+	*err = pwrite(fd->fd_sys, ((char *)buf) + size, rem, offset+size);
+        if (*err == -1) return;
+	*err += nbytes;
     }
 }
 
-static void ADIOI_LUSTRE_Aligned_Mem_File_Read(ADIO_File fd, const void *buf, int len,
-              ADIO_Offset offset, int *err);
-static void ADIOI_LUSTRE_Aligned_Mem_File_Read(ADIO_File fd, const void *buf, int len,
-              ADIO_Offset offset, int *err)
+static void ADIOI_LUSTRE_Aligned_Mem_File_Read(ADIO_File fd, const void *buf, MPI_Count len,
+              ADIO_Offset offset, ssize_t *err);
+static void ADIOI_LUSTRE_Aligned_Mem_File_Read(ADIO_File fd, const void *buf, MPI_Count len,
+              ADIO_Offset offset, ssize_t *err)
 {
-    int rem, size, nbytes;
+    MPI_Count rem, size;
+    ssize_t nbytes;
     if (!(len % fd->d_miniosz) && (len >= fd->d_miniosz))
 	*err = pread(fd->fd_direct, (void *)buf, len, offset);
     else if (len < fd->d_miniosz)
@@ -48,19 +52,22 @@ static void ADIOI_LUSTRE_Aligned_Mem_File_Read(ADIO_File fd, const void *buf, in
     else {
 	rem = len % fd->d_miniosz;
 	size = len - rem;
-	nbytes = pread(fd->fd_direct, (void *)buf, size, offset);
-	nbytes += pread(fd->fd_sys, ((char *)buf) + size, rem, offset+size);
-	*err = nbytes;
+	*err = pread(fd->fd_direct, (void *)buf, size, offset);
+        if (*err == -1) return;
+        nbytes = *err;
+	*err = pread(fd->fd_sys, ((char *)buf) + size, rem, offset+size);
+        if (*err == -1) return;
+	*err += nbytes;
     }
 }
 
-
-static int ADIOI_LUSTRE_Directio(ADIO_File fd, const void *buf, int len,
+static ssize_t ADIOI_LUSTRE_Directio(ADIO_File fd, const void *buf, MPI_Count len,
 			   off_t offset, int rw);
-static int ADIOI_LUSTRE_Directio(ADIO_File fd, const void *buf, int len,
+static ssize_t ADIOI_LUSTRE_Directio(ADIO_File fd, const void *buf, MPI_Count len,
 			   off_t offset, int rw)
 {
-    int err=-1, diff, size=len, nbytes = 0;
+    ssize_t err=-1, diff, nbytes = 0;
+    MPI_Count size=len;
     void *newbuf;
 
     if (offset % fd->d_miniosz) {
@@ -70,47 +77,58 @@ static int ADIOI_LUSTRE_Directio(ADIO_File fd, const void *buf, int len,
 	    nbytes = pwrite(fd->fd_sys, (void *)buf, diff, offset);
 	else
 	    nbytes = pread(fd->fd_sys, (void *)buf, diff, offset);
+        if (nbytes == -1) return -1;
 	buf = ((char *) buf) + diff;
 	offset += diff;
 	size = len - diff;
     }
 
     if (!size) {
-	return diff;
+	return nbytes;
     }
 
     if (rw) { /* direct I/O enabled */
 	if (!(((long) buf) % fd->d_mem)) {
 	    ADIOI_LUSTRE_Aligned_Mem_File_Write(fd, buf, size, offset, &err);
+            if (err == -1) return -1;
 	    nbytes += err;
 	} else {
 	    newbuf = (void *) memalign(LUSTRE_MEMALIGN, size);
 	    if (newbuf) {
 		memcpy(newbuf, buf, size);
 		ADIOI_LUSTRE_Aligned_Mem_File_Write(fd, newbuf, size, offset, &err);
+                if (err == -1) return -1;
 		nbytes += err;
 		ADIOI_Free(newbuf);
 	    }
-	    else nbytes += pwrite(fd->fd_sys, buf, size, offset);
+	    else {
+                err = pwrite(fd->fd_sys, buf, size, offset);
+                if (err == -1) return -1;
+                nbytes += err;
+            }
 	}
-	err = nbytes;
     } else {       
 	if (!(((long) buf) % fd->d_mem)) {
 	    ADIOI_LUSTRE_Aligned_Mem_File_Read(fd, buf, size, offset, &err);
+            if (err == -1) return -1;
 	    nbytes += err;
 	} else {
 	    newbuf = (void *) memalign(LUSTRE_MEMALIGN, size);
 	    if (newbuf) {
 		ADIOI_LUSTRE_Aligned_Mem_File_Read(fd, newbuf, size, offset, &err);
+                if (err == -1) return -1;
 		if (err > 0) memcpy((void *)buf, newbuf, err);
 		nbytes += err;
 		ADIOI_Free(newbuf);
 	    }
-	    else nbytes += pread(fd->fd_sys, (void *)buf, size, offset);
+	    else {
+                err = pread(fd->fd_sys, (void *)buf, size, offset);
+                if (err == -1) return -1;
+                nbytes += err;
+            }
 	}
-	err = nbytes;
     }
-    return err;
+    return nbytes;
 }
 
 static void ADIOI_LUSTRE_IOContig(ADIO_File fd, const void *buf, int count,
@@ -122,9 +140,12 @@ static void ADIOI_LUSTRE_IOContig(ADIO_File fd, const void *buf, int count,
 	           ADIO_Offset offset, ADIO_Status *status, 
 		   int io_mode, int *error_code)
 {
-    int err=-1;
+    ssize_t err=-1;
+    size_t rw_count;
+    ADIO_Offset bytes_xfered=0;
     MPI_Count datatype_size, len;
     static char myname[] = "ADIOI_LUSTRE_IOCONTIG";
+    char *p;
 
     MPI_Type_size_x(datatype, &datatype_size);
     len = datatype_size * count;
@@ -139,36 +160,52 @@ static void ADIOI_LUSTRE_IOContig(ADIO_File fd, const void *buf, int count,
 	    if (err == -1) goto ioerr;
 	}
 	
+        p = (char *)buf;
 	if (io_mode) {
+            while (bytes_xfered < len) {
 #ifdef ADIOI_MPE_LOGGING
-        MPE_Log_event(ADIOI_MPE_write_a, 0, NULL);
+                MPE_Log_event(ADIOI_MPE_write_a, 0, NULL);
 #endif
-	    err = write(fd->fd_sys, buf, len);
+                rw_count = len - bytes_xfered;
+	        err = pwrite(fd->fd_sys, p, rw_count, offset+bytes_xfered);
+                if (err == -1) goto ioerr;
 #ifdef ADIOI_MPE_LOGGING
-        MPE_Log_event(ADIOI_MPE_write_b, 0, NULL);
+                MPE_Log_event(ADIOI_MPE_write_b, 0, NULL);
 #endif
+                if (err == 0) break;
+                bytes_xfered += err;
+                p += err;
+            }
         } else {
+            while (bytes_xfered < len) {
 #ifdef ADIOI_MPE_LOGGING
-        MPE_Log_event(ADIOI_MPE_read_a, 0, NULL);
+                MPE_Log_event(ADIOI_MPE_read_a, 0, NULL);
 #endif
-	    err = read(fd->fd_sys, (void *)buf, len);
+                rw_count = len - bytes_xfered;
+	        err = pread(fd->fd_sys, p, rw_count, offset+bytes_xfered);
+                if (err == -1) goto ioerr;
 #ifdef ADIOI_MPE_LOGGING
-        MPE_Log_event(ADIOI_MPE_read_b, 0, NULL);
+                MPE_Log_event(ADIOI_MPE_read_b, 0, NULL);
 #endif
+                if (err == 0) break;
+                bytes_xfered += err;
+                p += err;
+            }
         }
     } else {
 	err = ADIOI_LUSTRE_Directio(fd, buf, len, offset, io_mode);
+        if (err == -1) goto ioerr;
+        bytes_xfered = err;
     }
 
-    if (err == -1) goto ioerr;
-    fd->fp_sys_posn = offset + err;
+    fd->fp_sys_posn = offset + bytes_xfered;
 
     if (file_ptr_type == ADIO_INDIVIDUAL) {
-	fd->fp_ind += err; 
+	fd->fp_ind += bytes_xfered;
     }
 
 #ifdef HAVE_STATUS_SET_BYTES
-    if (status) MPIR_Status_set_bytes(status, datatype, err);
+    if (status) MPIR_Status_set_bytes(status, datatype, bytes_xfered);
 #endif
     *error_code = MPI_SUCCESS;
 

http://git.mpich.org/mpich.git/commitdiff/9559fd65c08e179947cff6981dceb8ac35c04672

commit 9559fd65c08e179947cff6981dceb8ac35c04672
Author: Gilles Gouaillardet <gilles.gouaillardet at iferc.org>
Date:   Thu Jan 30 15:05:57 2014 +0900

    Fix integer overflow in romio/adio/ad_lustre.
    
    Some integer overflow prevented MPI_File_write_all to write
    more than 2GB at a time on lustre.
    This patch does the minimum.  A fuller audit likely needed.
    
    (Michael Raymond at SGI complained to RobL about this bug, too)
    
    Fix #2011.
    
    Signed-off-by: Rob Latham <robl at mcs.anl.gov>

diff --git a/src/mpi/romio/adio/ad_lustre/ad_lustre.h b/src/mpi/romio/adio/ad_lustre/ad_lustre.h
index edd2bd3..5e8f017 100644
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre.h
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre.h
@@ -88,7 +88,7 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
                               int *count_my_req_procs_ptr,
 			      int **count_my_req_per_proc_ptr,
 			      ADIOI_Access **my_req_ptr,
-			      int ***buf_idx_ptr);
+			      ADIO_Offset ***buf_idx_ptr);
 
 int ADIOI_LUSTRE_Calc_aggregator(ADIO_File fd, ADIO_Offset off,
                                  ADIO_Offset *len, int *striping_info);
diff --git a/src/mpi/romio/adio/ad_lustre/ad_lustre_aggregate.c b/src/mpi/romio/adio/ad_lustre/ad_lustre_aggregate.c
index 39f158d..a9840cc 100644
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre_aggregate.c
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre_aggregate.c
@@ -140,13 +140,13 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
                               int *count_my_req_procs_ptr,
 			      int **count_my_req_per_proc_ptr,
 			      ADIOI_Access **my_req_ptr,
-			      int ***buf_idx_ptr)
+			      ADIO_Offset ***buf_idx_ptr)
 {
     /* Nothing different from ADIOI_Calc_my_req(), except calling
      * ADIOI_Lustre_Calc_aggregator() instead of the old one */
-    int *count_my_req_per_proc, count_my_req_procs, **buf_idx;
+    int *count_my_req_per_proc, count_my_req_procs;
     int i, l, proc;
-    ADIO_Offset avail_len, rem_len, curr_idx, off;
+    ADIO_Offset avail_len, rem_len, curr_idx, off, **buf_idx;
     ADIOI_Access *my_req;
 
     *count_my_req_per_proc_ptr = (int *) ADIOI_Calloc(nprocs, sizeof(int));
@@ -157,7 +157,7 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
      * MPI_Alltoall later on.
      */
 
-    buf_idx = (int **) ADIOI_Malloc(nprocs * sizeof(int*));
+    buf_idx = (ADIO_Offset **) ADIOI_Malloc(nprocs * sizeof(ADIO_Offset *));
 
     /* one pass just to calculate how much space to allocate for my_req;
      * contig_access_count was calculated way back in ADIOI_Calc_my_off_len()
@@ -201,8 +201,8 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
     /* initialize buf_idx vectors */
     for (i = 0; i < nprocs; i++) {
 	/* add one to count_my_req_per_proc[i] to avoid zero size malloc */
-	buf_idx[i] = (int *) ADIOI_Malloc((count_my_req_per_proc[i] + 1)
-			                   * sizeof(int)); 
+	buf_idx[i] = (ADIO_Offset *) ADIOI_Malloc((count_my_req_per_proc[i] + 1)
+			                   * sizeof(ADIO_Offset));
     }
 
     /* now allocate space for my_req, offset, and len */
@@ -235,9 +235,8 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
 
 	l = my_req[proc].count;
 
-	ADIOI_Assert(curr_idx == (int) curr_idx);
 	ADIOI_Assert(l < count_my_req_per_proc[proc]);
-	buf_idx[proc][l] = (int) curr_idx;
+	buf_idx[proc][l] = curr_idx;
 	curr_idx += avail_len;
 
 	rem_len = len_list[i] - avail_len;
@@ -259,9 +258,8 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset *offset_list,
                                                 striping_info);
 
 	    l = my_req[proc].count;
-	    ADIOI_Assert(curr_idx == (int) curr_idx);
 	    ADIOI_Assert(l < count_my_req_per_proc[proc]);
-	    buf_idx[proc][l] = (int) curr_idx;
+	    buf_idx[proc][l] = curr_idx;
 
 	    curr_idx += avail_len;
 	    rem_len -= avail_len;
diff --git a/src/mpi/romio/adio/ad_lustre/ad_lustre_wrcoll.c b/src/mpi/romio/adio/ad_lustre/ad_lustre_wrcoll.c
index 36f5f28..e87f927 100644
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre_wrcoll.c
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre_wrcoll.c
@@ -21,7 +21,7 @@ static void ADIOI_LUSTRE_Exch_and_write(ADIO_File fd, const void *buf,
 					ADIO_Offset *len_list,
 					int contig_access_count,
 					int *striping_info,
-                                        int **buf_idx, int *error_code);
+                                        ADIO_Offset **buf_idx, int *error_code);
 static void ADIOI_LUSTRE_Fill_send_buffer(ADIO_File fd, const void *buf,
 					  ADIOI_Flatlist_node *flat_buf,
 					  char **send_buf,
@@ -31,7 +31,7 @@ static void ADIOI_LUSTRE_Fill_send_buffer(ADIO_File fd, const void *buf,
 					  int *sent_to_proc, int nprocs,
 					  int myrank, int contig_access_count,
 					  int *striping_info,
-					  int *send_buf_idx,
+					  ADIO_Offset *send_buf_idx,
                                           int *curr_to_proc,
 					  int *done_to_proc, int iter,
 					  MPI_Aint buftype_extent);
@@ -48,11 +48,11 @@ static void ADIOI_LUSTRE_W_Exchange_data(ADIO_File fd, const void *buf,
 					 int contig_access_count,
 					 int *striping_info,
 					 ADIOI_Access *others_req,
-					 int *send_buf_idx,
+					 ADIO_Offset *send_buf_idx,
 					 int *curr_to_proc,
 					 int *done_to_proc, int *hole,
 					 int iter, MPI_Aint buftype_extent,
-					 int *buf_idx,
+					 ADIO_Offset *buf_idx,
 					 ADIO_Offset **srt_off, int **srt_len, int *srt_num,
 					 int *error_code);
 void ADIOI_Heap_merge(ADIOI_Access *others_req, int *count,
@@ -85,7 +85,8 @@ void ADIOI_LUSTRE_WriteStridedColl(ADIO_File fd, const void *buf, int count,
     ADIO_Offset orig_fp, start_offset, end_offset, off;
     ADIO_Offset *offset_list = NULL, *st_offsets = NULL, *end_offsets = NULL;
     ADIO_Offset *len_list = NULL;
-    int **buf_idx = NULL, *striping_info = NULL;
+    int *striping_info = NULL;
+    ADIO_Offset **buf_idx = NULL;
     int old_error, tmp_error;
 
     MPI_Comm_size(fd->comm, &nprocs);
@@ -287,7 +288,7 @@ static void ADIOI_LUSTRE_Exch_and_write(ADIO_File fd, const void *buf,
 					ADIO_Offset *offset_list,
                                         ADIO_Offset *len_list, 
 					int contig_access_count,
-                                        int *striping_info, int **buf_idx,
+                                        int *striping_info, ADIO_Offset **buf_idx,
                                         int *error_code)
 {
     /* Send data to appropriate processes and write in sizes of no more
@@ -308,8 +309,8 @@ static void ADIOI_LUSTRE_Exch_and_write(ADIO_File fd, const void *buf,
     int *recv_curr_offlen_ptr, *recv_count, *recv_size;
     int *send_curr_offlen_ptr, *send_size;
     int *sent_to_proc, *recv_start_pos;
-    int *send_buf_idx, *curr_to_proc, *done_to_proc;
-    int *this_buf_idx;
+    int *curr_to_proc, *done_to_proc;
+    ADIO_Offset *send_buf_idx, *this_buf_idx;
     char *write_buf = NULL;
     MPI_Status status;
     ADIOI_Flatlist_node *flat_buf = NULL;
@@ -399,12 +400,12 @@ static void ADIOI_LUSTRE_Exch_and_write(ADIO_File fd, const void *buf,
     /* amount of data sent to each proc so far. Used in
        ADIOI_Fill_send_buffer. initialized to 0 here. */
 
-    send_buf_idx = (int *) ADIOI_Malloc(nprocs * sizeof(int));
+    send_buf_idx = (ADIO_Offset *) ADIOI_Malloc(nprocs * sizeof(ADIO_Offset));
     curr_to_proc = (int *) ADIOI_Malloc(nprocs * sizeof(int));
     done_to_proc = (int *) ADIOI_Malloc(nprocs * sizeof(int));
     /* Above three are used in ADIOI_Fill_send_buffer */
 
-    this_buf_idx = (int *) ADIOI_Malloc(nprocs * sizeof(int));
+    this_buf_idx = (ADIO_Offset *) ADIOI_Malloc(nprocs * sizeof(ADIO_Offset));
 
     recv_start_pos = (int *) ADIOI_Malloc(nprocs * sizeof(int));
     /* used to store the starting value of recv_curr_offlen_ptr[i] in
@@ -620,11 +621,11 @@ static void ADIOI_LUSTRE_W_Exchange_data(ADIO_File fd, const void *buf,
 					 int contig_access_count,
 					 int *striping_info,
 					 ADIOI_Access *others_req,
-					 int *send_buf_idx,
+					 ADIO_Offset *send_buf_idx,
 					 int *curr_to_proc, int *done_to_proc,
                                          int *hole, int iter,
                                          MPI_Aint buftype_extent,
-					 int *buf_idx,
+					 ADIO_Offset *buf_idx,
                           ADIO_Offset **srt_off, int **srt_len, int *srt_num,
                           int *error_code)
 {
@@ -889,7 +890,7 @@ static void ADIOI_LUSTRE_Fill_send_buffer(ADIO_File fd, const void *buf,
 					  int myrank,
 					  int contig_access_count,
 					  int *striping_info,
-					  int *send_buf_idx,
+					  ADIO_Offset *send_buf_idx,
 					  int *curr_to_proc,
 					  int *done_to_proc, int iter,
 					  MPI_Aint buftype_extent)

-----------------------------------------------------------------------

Summary of changes:
 src/mpi/romio/adio/ad_lustre/ad_lustre.h           |    2 +-
 src/mpi/romio/adio/ad_lustre/ad_lustre_aggregate.c |   18 ++--
 src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c  |  111 +++++++++++++-------
 src/mpi/romio/adio/ad_lustre/ad_lustre_wrcoll.c    |   27 +++---
 src/mpi/romio/adio/common/shfp_fname.c             |    4 +-
 src/mpi/romio/mpi-io/mpir_cst_filesys.c            |    2 +-
 src/mpl/src/timer/mpl_timer_clock_gettime.c        |    2 +-
 7 files changed, 102 insertions(+), 64 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list