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

Service Account noreply at mpich.org
Sat Jun 6 00:03:04 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  52316da7628b94ebf493492a6e4192f6bb4e7f04 (commit)
       via  83b2816f3eb8e5b00831d42193b1c5f158b5b90b (commit)
      from  7e2a47bb2f6d2c587cc7eadcbf80be5b191b0bc1 (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/52316da7628b94ebf493492a6e4192f6bb4e7f04

commit 52316da7628b94ebf493492a6e4192f6bb4e7f04
Author: Valentin Petrov <valentin.petrov at intel.com>
Date:   Fri May 29 12:08:39 2015 +0400

    OFI netmod: RCD protocol bug fix.
    
    The previous version of the protocol assumed that fi_trecv utilizes
    direct address for matching. This does not hold, for example, for PSM
    OFI provider (it does not set claim FI_DIRECTED_RECV capability). So,
    the API1 set should work w/o directed recv assumption. Hence, we have
    to encapsulate rank info in the tag in the RCD protocol in order to
    avoid mismatch.
    
    Change-Id: I7868f2f033cf3cdec29f7daded8b29c275b2632f
    Signed-off-by: Charles J Archer <charles.j.archer at intel.com>

diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_cm.c b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_cm.c
index dce84d0..7ccae8e 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_cm.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_cm.c
@@ -233,7 +233,7 @@ static inline int MPID_nem_ofi_preposted_callback(cq_tagged_entry_t * wc, MPID_R
                        REQ_OFI(new_rreq)->pack_buffer_size,
                        gl_data.mr,
                        VC_OFI(vc)->direct_addr,
-                       MPID_MSG_DATA, 0, &(REQ_OFI(new_rreq)->ofi_context)), trecv);
+                       wc->tag | MPID_MSG_CTS | MPID_MSG_DATA, 0, &(REQ_OFI(new_rreq)->ofi_context)), trecv);
 
     MPID_nem_ofi_create_req(&sreq, 1);
     sreq->dev.OnDataAvail = NULL;
@@ -245,7 +245,7 @@ static inline int MPID_nem_ofi_preposted_callback(cq_tagged_entry_t * wc, MPID_R
                      0,
                      gl_data.mr,
                      VC_OFI(vc)->direct_addr,
-                     MPID_MSG_CTS, &(REQ_OFI(sreq)->ofi_context)), tsend);
+                     wc->tag | MPID_MSG_CTS, &(REQ_OFI(sreq)->ofi_context)), tsend);
     MPIU_Assert(gl_data.persistent_req == rreq);
 
     rreq->dev.user_count = 0;
diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_msg.c b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_msg.c
index fe5ddae..db64284 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_msg.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_msg.c
@@ -84,7 +84,7 @@
                        0,                                               \
                        gl_data.mr,                                      \
                        VC_OFI(vc)->direct_addr,                         \
-                       MPID_MSG_CTS,                                    \
+                       match_bits | MPID_MSG_CTS,                       \
                        0, /* Exact tag match, no ignore bits */         \
                        &(REQ_OFI(cts_req)->ofi_context)),trecv);        \
         if (gl_data.api_set == API_SET_1){                              \
@@ -123,17 +123,17 @@ static int MPID_nem_ofi_data_callback(cq_tagged_entry_t * wc, MPID_Request * sre
     uint64_t tag = 0;
     BEGIN_FUNC(FCNAME);
     switch (wc->tag & MPID_PROTOCOL_MASK) {
-    case MPID_MSG_CTS:
+    case MPID_MSG_CTS | MPID_MSG_RTS:
         vc = REQ_OFI(sreq)->vc;
         FI_RC_RETRY(fi_tsend(gl_data.endpoint,
                        REQ_OFI(sreq)->pack_buffer,
                        REQ_OFI(sreq)->pack_buffer_size,
                        gl_data.mr,
                        VC_OFI(vc)->direct_addr,
-                       MPID_MSG_DATA, (void *) &(REQ_OFI(sreq)->ofi_context)), tsend);
+                       wc->tag | MPID_MSG_DATA, (void *) &(REQ_OFI(sreq)->ofi_context)), tsend);
         MPIDI_CH3U_Request_complete(sreq);
         break;
-    case MPID_MSG_DATA:
+    case MPID_MSG_CTS | MPID_MSG_RTS | MPID_MSG_DATA:
         if (REQ_OFI(sreq)->pack_buffer)
             MPIU_Free(REQ_OFI(sreq)->pack_buffer);
 
diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tag_layout.h b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tag_layout.h
index e6492d5..33a5d6d 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tag_layout.h
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tag_layout.h
@@ -19,12 +19,12 @@
 #define MPID_PGID_MASK           (0xFFFFFFFF00000000ULL)
 #define MPID_PSOURCE_MASK        (0x000000000000FFFFULL)
 #define MPID_PORT_NAME_MASK      (0x000000000000FFFFULL)
-#define MPID_SYNC_SEND           (0x0000000010000000ULL)
-#define MPID_SYNC_SEND_ACK       (0x0000000020000000ULL)
-#define MPID_MSG_RTS             (0x0000000030000000ULL)
-#define MPID_MSG_CTS             (0x0000000040000000ULL)
-#define MPID_MSG_DATA            (0x0000000050000000ULL)
-#define MPID_CONN_REQ            (0x0000000060000000ULL)
+#define MPID_SYNC_SEND           (0x0000000080000000ULL)
+#define MPID_SYNC_SEND_ACK       (0x0000000090000000ULL)
+#define MPID_MSG_RTS             (0x0000000010000000ULL)
+#define MPID_MSG_CTS             (0x0000000020000000ULL)
+#define MPID_MSG_DATA            (0x0000000040000000ULL)
+#define MPID_CONN_REQ            (0x00000000A0000000ULL)
 #define MPID_SOURCE_SHIFT        (48)
 #define MPID_CTXID_SHIFT         (32)
 #define MPID_PGID_SHIFT          (32)

http://git.mpich.org/mpich.git/commitdiff/83b2816f3eb8e5b00831d42193b1c5f158b5b90b

commit 83b2816f3eb8e5b00831d42193b1c5f158b5b90b
Author: Jithin Jose <jithin.jose at intel.com>
Date:   Fri Jun 5 13:38:39 2015 -0700

    Handle error-event for fi_cancel
    
    Change-Id: I25d9c8e80329dc185ee89da9fa1d8d9f54ea493e
    Signed-off-by: Jithin Jose <jithin.jose at intel.com>
    Signed-off-by: Charles J Archer <charles.j.archer at intel.com>

diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_progress.c b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_progress.c
index 34d85ec..3ca9a57 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_progress.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_progress.c
@@ -106,6 +106,13 @@ int MPID_nem_ofi_poll(int in_blocking_poll)
                         mpi_errno = MPI_ERR_OTHER;
                     }
                 }
+		else if (error.err == FI_ECANCELED) {
+			req = context_to_req(error.op_context);
+			MPIR_STATUS_SET_CANCEL_BIT(req->status, TRUE);
+		}
+		else {
+                        mpi_errno = MPI_ERR_OTHER;
+		}
             }
             else {
                 MPIU_ERR_CHKANDJUMP4(1, mpi_errno, MPI_ERR_OTHER, "**ofi_poll",
diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tagged.c b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tagged.c
index cab6c11..875d6d7 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tagged.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_tagged.c
@@ -75,6 +75,13 @@ static inline int MPID_nem_ofi_send_callback(cq_tagged_entry_t * wc ATTRIBUTE((u
   ret = fi_cancel((fid_t)gl_data.endpoint,              \
                   &(REQ_OFI(req)->ofi_context));        \
   if (ret == 0) {                                        \
+      while (!MPIR_STATUS_GET_CANCEL_BIT(req->status)) {		\
+	  if ((mpi_errno = MPID_nem_ofi_poll(MPID_NONBLOCKING_POLL)) != \
+	      MPI_SUCCESS) {						\
+	      MPIR_STATUS_SET_CANCEL_BIT(req->status, FALSE);	        \
+	      return mpi_errno;						\
+	  }								\
+      }									\
     MPIR_STATUS_SET_CANCEL_BIT(req->status, TRUE);      \
   } else {                                              \
     MPIR_STATUS_SET_CANCEL_BIT(req->status, FALSE);     \

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

Summary of changes:
 src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_cm.c  |    4 ++--
 src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_msg.c |    8 ++++----
 .../ch3/channels/nemesis/netmod/ofi/ofi_progress.c |    7 +++++++
 .../channels/nemesis/netmod/ofi/ofi_tag_layout.h   |   12 ++++++------
 .../ch3/channels/nemesis/netmod/ofi/ofi_tagged.c   |    7 +++++++
 5 files changed, 26 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list