[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b3-175-gb32b36c

Service Account noreply at mpich.org
Mon Jun 29 12:36:08 CDT 2015


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  b32b36c4185da638084b5c3f8d6bfc01f3416cb0 (commit)
       via  a69d9f4aa90b465e5e8f15f6c76e73642782b860 (commit)
       via  46cca1cf228ce6f2feab568a0aefcf1a9d973a45 (commit)
       via  185e24dbf269eb7f1b053be7e686422c7d935d0d (commit)
      from  46afb9506a29457620cc1dba1e8ebc9b7a4647c4 (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/b32b36c4185da638084b5c3f8d6bfc01f3416cb0

commit b32b36c4185da638084b5c3f8d6bfc01f3416cb0
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 28 16:52:20 2015 -0500

    Bug-fix: store stream_offset in response request of GACC message.
    
    We need to store stream_offset in the response request so that
    we can use it when response data is back. Here we allocate an
    extended packet header which only contains stream_offset to
    achieve this purpose.
    
    Signed-off-by: Min Si <msi at il.is.s.u-tokyo.ac.jp>
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/src/mpid/ch3/include/mpid_rma_issue.h b/src/mpid/ch3/include/mpid_rma_issue.h
index e0d4be6..548beb0 100644
--- a/src/mpid/ch3/include/mpid_rma_issue.h
+++ b/src/mpid/ch3/include/mpid_rma_issue.h
@@ -786,6 +786,7 @@ static int issue_get_acc_op(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
         resp_req->dev.datatype = rma_op->result_datatype;
         resp_req->dev.target_win_handle = MPI_WIN_NULL;
         resp_req->dev.source_win_handle = win_ptr->handle;
+        resp_req->dev.flags = flags;
 
         if (!MPIR_DATATYPE_IS_PREDEFINED(resp_req->dev.datatype)) {
             MPID_Datatype *result_dtp = NULL;
@@ -805,6 +806,13 @@ static int issue_get_acc_op(MPIDI_RMA_Op_t * rma_op, MPID_Win * win_ptr,
         /* Set extended packet header if needed. */
         init_get_accum_ext_pkt(flags, target_dtp_ptr, stream_offset, &ext_hdr_ptr, &ext_hdr_sz);
 
+        /* Note: here we need to allocate an extended packet header in response request,
+         * in order to store the stream_offset locally and use it in PktHandler_Get_AccumResp.
+         * This extended packet header only contains stream_offset and does not contain any
+         * other information. */
+        init_get_accum_ext_pkt(flags, NULL /* target_dtp_ptr */ , stream_offset,
+                               &(resp_req->dev.ext_hdr_ptr), &(resp_req->dev.ext_hdr_sz));
+
         mpi_errno = issue_from_origin_buffer(rma_op, vc, ext_hdr_ptr, ext_hdr_sz,
                                              stream_offset, stream_size, &curr_req);
         if (mpi_errno != MPI_SUCCESS)
diff --git a/src/mpid/ch3/src/ch3u_rma_pkthandler.c b/src/mpid/ch3/src/ch3u_rma_pkthandler.c
index 033b999..a1b7dd9 100644
--- a/src/mpid/ch3/src/ch3u_rma_pkthandler.c
+++ b/src/mpid/ch3/src/ch3u_rma_pkthandler.c
@@ -1668,9 +1668,12 @@ int MPIDI_CH3_PktHandler_Get_AccumResp(MPIDI_VC_t * vc, MPIDI_CH3_Pkt_t * pkt,
         MPID_Datatype_get_extent_macro(basic_type, basic_type_extent);
         MPID_Datatype_get_size_macro(basic_type, basic_type_size);
 
-        /* get stream_offset from extended header */
-        MPIDI_CH3_ExtPkt_Gaccum_get_stream(req->dev.flags,
-                                           (!MPIR_DATATYPE_IS_PREDEFINED(req->dev.datatype)),
+        /* Note: here we get the stream_offset from the extended packet header
+         * in the response request, which is set in issue_get_acc_op() funcion.
+         * Note that this extended packet header only contains stream_offset and
+         * does not contain datatype info, so here we pass 0 to is_derived_dt
+         * flag. */
+        MPIDI_CH3_ExtPkt_Gaccum_get_stream(req->dev.flags, 0 /* is_derived_dt */ ,
                                            req->dev.ext_hdr_ptr, &contig_stream_offset);
 
         total_len = type_size * req->dev.user_count;

http://git.mpich.org/mpich.git/commitdiff/a69d9f4aa90b465e5e8f15f6c76e73642782b860

commit a69d9f4aa90b465e5e8f15f6c76e73642782b860
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 28 14:29:58 2015 -0500

    Bug-fix on sock: leave IOV slot for extended packet header.
    
    In SendNoncontig_iov(), when extended packet header exists, we
    should leave one IOV slot before loading data to IOVs, so that
    MPIDI_CH3_iSendv() can have enough IOVs to send out hdr/ext_hdr/data.
    
    Signed-off-by: Min Si <msi at il.is.s.u-tokyo.ac.jp>
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/src/mpid/ch3/src/ch3u_eager.c b/src/mpid/ch3/src/ch3u_eager.c
index 38369ce..a8e1b3c 100644
--- a/src/mpid/ch3/src/ch3u_eager.c
+++ b/src/mpid/ch3/src/ch3u_eager.c
@@ -35,6 +35,13 @@ int MPIDI_CH3_SendNoncontig_iov( MPIDI_VC_t *vc, MPID_Request *sreq,
 
     iov_n = MPID_IOV_LIMIT - 1;
 
+    if (sreq->dev.ext_hdr_sz > 0) {
+        /* When extended packet header exists, here we leave one IOV slot
+         * before loading data to IOVs, so that there will be enough
+         * IOVs for hdr/ext_hdr/data. */
+        iov_n--;
+    }
+
     mpi_errno = MPIDI_CH3U_Request_load_send_iov(sreq, &iov[1], &iov_n);
     if (mpi_errno == MPI_SUCCESS)
     {

http://git.mpich.org/mpich.git/commitdiff/46cca1cf228ce6f2feab568a0aefcf1a9d973a45

commit 46cca1cf228ce6f2feab568a0aefcf1a9d973a45
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sat Jun 27 08:06:47 2015 -0500

    Bug-fix: void function should not have return value.
    
    Signed-off-by: Min Si <msi at il.is.s.u-tokyo.ac.jp>
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/src/mpid/ch3/include/mpidrma.h b/src/mpid/ch3/include/mpidrma.h
index 1b88762..67e885a 100644
--- a/src/mpid/ch3/include/mpidrma.h
+++ b/src/mpid/ch3/include/mpidrma.h
@@ -1180,7 +1180,7 @@ static inline void MPIDI_CH3_ExtPkt_Gaccum_get_stream(MPIDI_CH3_Pkt_flags_t flag
 {
     /* We do not check packet match here, because error must have already been
      * reported at header init time (on origin) and at packet receive time (on target).  */
-    return MPIDI_CH3_ExtPkt_Accum_get_stream(flags, is_derived_dt, ext_hdr_ptr, stream_offset);
+    MPIDI_CH3_ExtPkt_Accum_get_stream(flags, is_derived_dt, ext_hdr_ptr, stream_offset);
 }
 
 #endif /* MPID_RMA_H_INCLUDED */

http://git.mpich.org/mpich.git/commitdiff/185e24dbf269eb7f1b053be7e686422c7d935d0d

commit 185e24dbf269eb7f1b053be7e686422c7d935d0d
Author: Xin Zhao <xinzhao3 at illinois.edu>
Date:   Sun Jun 28 17:04:52 2015 -0500

    Code format clean up.
    
    No reviewer.
    
    Signed-off-by: Pavan Balaji <balaji at anl.gov>

diff --git a/test/mpi/rma/large-small-acc.c b/test/mpi/rma/large-small-acc.c
index 8748f6d..17c7993 100644
--- a/test/mpi/rma/large-small-acc.c
+++ b/test/mpi/rma/large-small-acc.c
@@ -16,11 +16,12 @@
 #define LOOP 5
 #define DATA_COUNT 8192
 
-int main(int argc, char *argv[]){
+int main(int argc, char *argv[])
+{
     int rank, nprocs;
     MPI_Win win;
     uint64_t buf[DATA_COUNT], orig_buf[DATA_COUNT];
-    uint64_t small_orig_buf_1 = 2, small_orig_buf_2[2] = {3, 3};
+    uint64_t small_orig_buf_1 = 2, small_orig_buf_2[2] = { 3, 3 };
     int i, j, error = 0;
 
     MPI_Init(&argc, &argv);
@@ -36,18 +37,21 @@ int main(int argc, char *argv[]){
             orig_buf[i] = 1;
         }
 
-        MPI_Win_create(buf, sizeof(uint64_t)*DATA_COUNT, sizeof(uint64_t),
+        MPI_Win_create(buf, sizeof(uint64_t) * DATA_COUNT, sizeof(uint64_t),
                        MPI_INFO_NULL, MPI_COMM_WORLD, &win);
 
         MPI_Win_fence(0, win);
 
         if (rank == 0) {
             /* ACC (atomic PUT) to win_buf[0...DATA_COUNT-1] */
-            MPI_Accumulate(orig_buf, DATA_COUNT, MPI_UINT64_T, 1, 0, DATA_COUNT, MPI_UINT64_T, MPI_REPLACE, win);
+            MPI_Accumulate(orig_buf, DATA_COUNT, MPI_UINT64_T, 1, 0, DATA_COUNT, MPI_UINT64_T,
+                           MPI_REPLACE, win);
             /* ACC (atomic PUT) to win_buf[0] */
-            MPI_Accumulate(&small_orig_buf_1, 1, MPI_UINT64_T, 1, 0, 1, MPI_UINT64_T, MPI_REPLACE, win);
+            MPI_Accumulate(&small_orig_buf_1, 1, MPI_UINT64_T, 1, 0, 1, MPI_UINT64_T, MPI_REPLACE,
+                           win);
             /* ACC (atomic PUT) to win_buf[1,2] */
-            MPI_Accumulate(&small_orig_buf_2, 2, MPI_UINT64_T, 1, 1, 2, MPI_UINT64_T, MPI_REPLACE, win);
+            MPI_Accumulate(&small_orig_buf_2, 2, MPI_UINT64_T, 1, 1, 2, MPI_UINT64_T, MPI_REPLACE,
+                           win);
         }
 
         MPI_Win_fence(0, win);

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

Summary of changes:
 src/mpid/ch3/include/mpid_rma_issue.h  |    8 ++++++++
 src/mpid/ch3/include/mpidrma.h         |    2 +-
 src/mpid/ch3/src/ch3u_eager.c          |    7 +++++++
 src/mpid/ch3/src/ch3u_rma_pkthandler.c |    9 ++++++---
 test/mpi/rma/large-small-acc.c         |   16 ++++++++++------
 5 files changed, 32 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list