[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2-240-gd677b7d

Service Account noreply at mpich.org
Tue Mar 22 12:17:24 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  d677b7d4009a9e9a3f9605863d3edf96d78aab70 (commit)
      from  a33abfab501908b2fc02565819b653937f1637b1 (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/d677b7d4009a9e9a3f9605863d3edf96d78aab70

commit d677b7d4009a9e9a3f9605863d3edf96d78aab70
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Wed Nov 25 09:10:50 2015 -0600

    ch3/imrecv: add channel override
    
    Matching netmods may wish to override MPID_Imrecv functionality, since
    messages may already be marked or removed from network receive queues.
    In this case, data can immediately begin copying into the user buffer,
    and any subsequent network operations started without searching the
    CH3 queue.
    
    Signed-off-by: Lena Oden <loden at anl.gov>

diff --git a/src/mpid/ch3/channels/nemesis/netmod/llc/llc_vc.c b/src/mpid/ch3/channels/nemesis/netmod/llc/llc_vc.c
index 57b39bf..09db8e7 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/llc/llc_vc.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/llc/llc_vc.c
@@ -40,7 +40,8 @@ static MPIDI_Comm_ops_t comm_ops = {
 
     .probe = MPID_nem_llc_probe,
     .iprobe = MPID_nem_llc_iprobe,
-    .improbe = MPID_nem_llc_improbe
+    .improbe = MPID_nem_llc_improbe,
+    .imrecv = NULL
 };
 
 #undef FUNCNAME
diff --git a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c
index 6cbd25c..b714ae3 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c
@@ -100,7 +100,8 @@ static MPIDI_Comm_ops_t comm_ops = {
 
     MPID_nem_mxm_probe, /* probe */
     MPID_nem_mxm_iprobe,        /* iprobe */
-    MPID_nem_mxm_improbe        /* improbe */
+    MPID_nem_mxm_improbe,       /* improbe */
+    NULL                        /* imrecv */
 };
 
 
diff --git a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_data.c b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_data.c
index 9bdc325..2505cac 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_data.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/ofi/ofi_data.c
@@ -36,7 +36,8 @@ MPIDI_Comm_ops_t _g_comm_ops = {
 
     NULL,       /* probe */
     MPID_nem_ofi_iprobe,        /* iprobe */
-    MPID_nem_ofi_improbe        /* improbe */
+    MPID_nem_ofi_improbe,       /* improbe */
+    MPID_nem_ofi_recv_posted    /* imrecv */
 };
 
 MPID_nem_netmod_funcs_t MPIDI_nem_ofi_funcs = {
diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
index 3cbfbca..9f7d691 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
@@ -88,7 +88,8 @@ static MPIDI_Comm_ops_t comm_ops = {
 
     MPID_nem_ptl_probe,         /* probe */
     MPID_nem_ptl_iprobe,        /* iprobe */
-    MPID_nem_ptl_improbe        /* improbe */
+    MPID_nem_ptl_improbe,       /* improbe */
+    NULL                        /* imrecv */
 };
 
 static MPIDI_CH3_PktHandler_Fcn *MPID_nem_ptl_pkt_handlers[2]; /* for CANCEL_SEND_REQ and CANCEL_SEND_RESP */
diff --git a/src/mpid/ch3/include/mpidimpl.h b/src/mpid/ch3/include/mpidimpl.h
index 142a8c8..994ce4f 100644
--- a/src/mpid/ch3/include/mpidimpl.h
+++ b/src/mpid/ch3/include/mpidimpl.h
@@ -663,6 +663,7 @@ typedef struct MPIDI_Comm_ops
 		  int *flag, MPI_Status *status);
     int (*improbe)(struct MPIDI_VC *vc,  int source, int tag, MPID_Comm *comm, int context_offset,
                    int *flag, MPID_Request **message, MPI_Status *status);
+    int (*imrecv)(struct MPIDI_VC *vc, struct MPID_Request *req);
 } MPIDI_Comm_ops_t;
 
 extern int (*MPIDI_Anysource_iprobe_fn)(int tag, MPID_Comm * comm, int context_offset, int *flag,
diff --git a/src/mpid/ch3/src/mpid_imrecv.c b/src/mpid/ch3/src/mpid_imrecv.c
index 69d1510..c9f3a98 100644
--- a/src/mpid/ch3/src/mpid_imrecv.c
+++ b/src/mpid/ch3/src/mpid_imrecv.c
@@ -43,6 +43,16 @@ int MPID_Imrecv(void *buf, int count, MPI_Datatype datatype,
     rreq->dev.user_count = count;
     rreq->dev.datatype = datatype;
 
+#ifdef ENABLE_COMM_OVERRIDES
+    MPIDI_Comm_get_vc(comm, rreq->status.MPI_SOURCE, &vc);
+    if (vc->comm_ops && vc->comm_ops->imrecv) {
+        MPID_THREAD_CS_ENTER(POBJ, vc->pobj_mutex);
+        vc->comm_ops->imrecv(vc, rreq);
+        MPID_THREAD_CS_EXIT(POBJ, vc->pobj_mutex);
+        goto fn_exit;
+    }
+#endif
+
     if (MPIDI_Request_get_msg_type(rreq) == MPIDI_REQUEST_EAGER_MSG)
     {
         int recv_pending;

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

Summary of changes:
 src/mpid/ch3/channels/nemesis/netmod/llc/llc_vc.c  |    3 ++-
 .../ch3/channels/nemesis/netmod/mxm/mxm_init.c     |    3 ++-
 .../ch3/channels/nemesis/netmod/ofi/ofi_data.c     |    3 ++-
 .../channels/nemesis/netmod/portals4/ptl_init.c    |    3 ++-
 src/mpid/ch3/include/mpidimpl.h                    |    1 +
 src/mpid/ch3/src/mpid_imrecv.c                     |   10 ++++++++++
 6 files changed, 19 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list