[mpich] MPICH primary repository branch, master, updated. v3.1.2-123-g0b5e902
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/0b5e9027d6e9d0978ec1cf46f07e640570... commit 0b5e9027d6e9d0978ec1cf46f07e64057011d3ab Author: Ken Raffenetti <[email protected]> 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 <[email protected]> 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/fdd179c17c7b943e19f3a0ea7c99d78eab... commit fdd179c17c7b943e19f3a0ea7c99d78eabd7a83d Author: Ken Raffenetti <[email protected]> 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 <[email protected]> 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
participants (1)
-
noreply@mpich.org