[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.2-123-g0b5e902

Service Account noreply at mpich.org
Wed Aug 27 15:24:41 CDT 2014


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  0b5e9027d6e9d0978ec1cf46f07e64057011d3ab (commit)
       via  fdd179c17c7b943e19f3a0ea7c99d78eabd7a83d (commit)
      from  e9a4e1c69b0439c56829726203acefc35456e076 (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/0b5e9027d6e9d0978ec1cf46f07e64057011d3ab

commit 0b5e9027d6e9d0978ec1cf46f07e64057011d3ab
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Tue Aug 19 15:48:26 2014 -0500

    portals4: get interface limits at init
    
    PtlNIInit can optionally return the limitations of a network interface.
    Get these limits so we can account for things like the max_msg_size.
    
    Signed-off-by: Antonio Pena Monferrer <apenya at mcs.anl.gov>

diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_impl.h b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_impl.h
index 9681bae..6130d98 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_impl.h
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_impl.h
@@ -21,6 +21,7 @@ extern ptl_pt_index_t  MPIDI_nem_ptl_control_pt; /* portal for MPICH control mes
 extern ptl_handle_eq_t MPIDI_nem_ptl_eq;
 
 extern ptl_handle_md_t MPIDI_nem_ptl_global_md;
+extern ptl_ni_limits_t MPIDI_nem_ptl_ni_limits;
 
 #define MPID_NEM_PTL_MAX_OVERFLOW_DATA 32 /* that's way more than we need */
 typedef struct MPID_nem_ptl_pack_overflow
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 f5161db..984f8c1 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_init.c
@@ -24,6 +24,7 @@ ptl_pt_index_t  MPIDI_nem_ptl_get_pt; /* portal for gets by receiver */
 ptl_pt_index_t  MPIDI_nem_ptl_control_pt; /* portal for MPICH control messages */
 ptl_handle_eq_t MPIDI_nem_ptl_eq;
 ptl_handle_md_t MPIDI_nem_ptl_global_md;
+ptl_ni_limits_t MPIDI_nem_ptl_ni_limits;
 
 static int ptl_init(MPIDI_PG_t *pg_p, int pg_rank, char **bc_val_p, int *val_max_sz_p);
 static int ptl_finalize(void);
@@ -105,7 +106,7 @@ static int ptl_init(MPIDI_PG_t *pg_p, int pg_rank, char **bc_val_p, int *val_max
     MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlinit", "**ptlinit %s", MPID_nem_ptl_strerror(ret));
     
     ret = PtlNIInit(PTL_IFACE_DEFAULT, PTL_NI_MATCHING | PTL_NI_PHYSICAL,
-                    PTL_PID_ANY, NULL, NULL, &MPIDI_nem_ptl_ni);
+                    PTL_PID_ANY, NULL, &MPIDI_nem_ptl_ni_limits, &MPIDI_nem_ptl_ni);
     MPIU_ERR_CHKANDJUMP1(ret, mpi_errno, MPI_ERR_OTHER, "**ptlniinit", "**ptlniinit %s", MPID_nem_ptl_strerror(ret));
 
     ret = PtlEQAlloc(MPIDI_nem_ptl_ni, EQ_COUNT, &MPIDI_nem_ptl_eq);

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

commit fdd179c17c7b943e19f3a0ea7c99d78eabd7a83d
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date:   Tue Aug 19 15:38:12 2014 -0500

    portals4: use datatype lower bounds for non-contig
    
    Similar to [494f597b], take the datatype offset into account during
    non-contiguous operations in the Portals4 netmod.
    
    Signed-off-by: Antonio Pena Monferrer <apenya at mcs.anl.gov>

diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_recv.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_recv.c
index 4e97a8d..3db3bbe 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_recv.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_recv.c
@@ -106,7 +106,7 @@ static int handler_recv_dequeue_complete(const ptl_event_t *e)
             MPIU_Memcpy((char *)rreq->dev.user_buf + dt_true_lb, e->start, e->mlength);
         } else {
             last = e->mlength;
-            MPID_Segment_unpack(rreq->dev.segment_ptr, 0, &last, e->start);
+            MPID_Segment_unpack(rreq->dev.segment_ptr, dt_true_lb, &last, e->start);
             MPIU_ERR_CHKANDJUMP(last != e->mlength, mpi_errno, MPI_ERR_OTHER, "**dtypemismatch");
         }
     }
@@ -213,7 +213,7 @@ static int handler_recv_dequeue_large(const ptl_event_t *e)
         if (dt_contig) {
             MPIU_Memcpy((char *)rreq->dev.user_buf + dt_true_lb, e->start, e->mlength);
         } else {
-            rreq->dev.segment_first = 0;
+            rreq->dev.segment_first = dt_true_lb;
             last = e->mlength;
             MPID_Segment_unpack(rreq->dev.segment_ptr, rreq->dev.segment_first, &last, e->start);
             MPIU_Assert(last == e->mlength);
@@ -408,13 +408,13 @@ int MPID_nem_ptl_recv_posted(MPIDI_VC_t *vc, MPID_Request *rreq)
             MPIU_DBG_MSG(CH3_CHANNEL, VERBOSE, "Small noncontig message");
             rreq->dev.segment_ptr = MPID_Segment_alloc();
             MPIU_ERR_CHKANDJUMP1(rreq->dev.segment_ptr == NULL, mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc");
-            MPID_Segment_init(rreq->dev.user_buf, rreq->dev.user_count, rreq->dev.datatype, rreq->dev.segment_ptr, 0);
-            rreq->dev.segment_first = 0;
+            MPID_Segment_init((char *)rreq->dev.user_buf, rreq->dev.user_count, rreq->dev.datatype, rreq->dev.segment_ptr, 0);
+            rreq->dev.segment_first = dt_true_lb;
             rreq->dev.segment_size = data_sz;
 
             last = rreq->dev.segment_size;
             rreq->dev.iov_count = MPID_IOV_LIMIT;
-            MPID_Segment_pack_vector(rreq->dev.segment_ptr, 0, &last, rreq->dev.iov, &rreq->dev.iov_count);
+            MPID_Segment_pack_vector(rreq->dev.segment_ptr, rreq->dev.segment_first, &last, rreq->dev.iov, &rreq->dev.iov_count);
 
             if (last == rreq->dev.segment_size) {
                 /* entire message fits in IOV */
@@ -447,12 +447,12 @@ int MPID_nem_ptl_recv_posted(MPIDI_VC_t *vc, MPID_Request *rreq)
             rreq->dev.segment_ptr = MPID_Segment_alloc();
             MPIU_ERR_CHKANDJUMP1(rreq->dev.segment_ptr == NULL, mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc");
             MPID_Segment_init(rreq->dev.user_buf, rreq->dev.user_count, rreq->dev.datatype, rreq->dev.segment_ptr, 0);
-            rreq->dev.segment_first = 0;
+            rreq->dev.segment_first = dt_true_lb;
             rreq->dev.segment_size = data_sz;
 
             last = PTL_LARGE_THRESHOLD;
             rreq->dev.iov_count = MPID_IOV_LIMIT;
-            MPID_Segment_pack_vector(rreq->dev.segment_ptr, 0, &last, rreq->dev.iov, &rreq->dev.iov_count);
+            MPID_Segment_pack_vector(rreq->dev.segment_ptr, rreq->dev.segment_first, &last, rreq->dev.iov, &rreq->dev.iov_count);
 
             if (last == PTL_LARGE_THRESHOLD) {
                 /* first chunk fits in IOV */
@@ -659,7 +659,7 @@ int MPID_nem_ptl_lmt_start_recv(MPIDI_VC_t *vc,  MPID_Request *rreq, MPID_IOV s_
                              "**nomem %s", "MPID_Segment_alloc");
         MPID_Segment_init(rreq->dev.user_buf, rreq->dev.user_count, rreq->dev.datatype,
                           rreq->dev.segment_ptr, 0);
-        rreq->dev.segment_first = 0;
+        rreq->dev.segment_first = dt_true_lb;
         rreq->dev.segment_size = data_sz - PTL_LARGE_THRESHOLD;
         last = PTL_LARGE_THRESHOLD;
         MPID_Segment_unpack(rreq->dev.segment_ptr, rreq->dev.segment_first, &last, rreq->dev.tmpbuf);
diff --git a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_send.c b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_send.c
index 88ff54e..2bb592c 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_send.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/portals4/ptl_send.c
@@ -226,7 +226,7 @@ static int send_msg(ptl_hdr_data_t ssend_flag, struct MPIDI_VC *vc, const void *
         sreq->dev.segment_ptr = MPID_Segment_alloc();
         MPIU_ERR_CHKANDJUMP1(sreq->dev.segment_ptr == NULL, mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc");
         MPID_Segment_init(buf, count, datatype, sreq->dev.segment_ptr, 0);
-        sreq->dev.segment_first = 0;
+        sreq->dev.segment_first = dt_true_lb;
         sreq->dev.segment_size = data_sz;
 
         last = sreq->dev.segment_size;
@@ -256,7 +256,7 @@ static int send_msg(ptl_hdr_data_t ssend_flag, struct MPIDI_VC *vc, const void *
         /* IOV is not long enough to describe entire message */
         MPIU_DBG_MSG(CH3_CHANNEL, VERBOSE, "    IOV too long: using bounce buffer");
         MPIU_CHKPMEM_MALLOC(REQ_PTL(sreq)->chunk_buffer[0], void *, data_sz, mpi_errno, "chunk_buffer");
-        sreq->dev.segment_first = 0;
+        sreq->dev.segment_first = dt_true_lb;
         last = data_sz;
         MPID_Segment_pack(sreq->dev.segment_ptr, sreq->dev.segment_first, &last, REQ_PTL(sreq)->chunk_buffer[0]);
         MPIU_Assert(last == sreq->dev.segment_size);
@@ -304,7 +304,7 @@ static int send_msg(ptl_hdr_data_t ssend_flag, struct MPIDI_VC *vc, const void *
     sreq->dev.segment_ptr = MPID_Segment_alloc();
     MPIU_ERR_CHKANDJUMP1(sreq->dev.segment_ptr == NULL, mpi_errno, MPI_ERR_OTHER, "**nomem", "**nomem %s", "MPID_Segment_alloc");
     MPID_Segment_init(buf, count, datatype, sreq->dev.segment_ptr, 0);
-    sreq->dev.segment_first = 0;
+    sreq->dev.segment_first = dt_true_lb;
     sreq->dev.segment_size = data_sz;
 
     last = PTL_LARGE_THRESHOLD;

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

Summary of changes:
 .../channels/nemesis/netmod/portals4/ptl_impl.h    |    1 +
 .../channels/nemesis/netmod/portals4/ptl_init.c    |    3 ++-
 .../channels/nemesis/netmod/portals4/ptl_recv.c    |   16 ++++++++--------
 .../channels/nemesis/netmod/portals4/ptl_send.c    |    6 +++---
 4 files changed, 14 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list