[mpich] MPICH primary repository branch, master, updated. v3.1.2-117-gc5c26b1
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 c5c26b1bf2e045318460319d70d265ec75e6d3fd (commit) via 765f0a299e2c38dec805278653433ba2eef9e354 (commit) from c13ab18f22de8df22b97f51dfa9aeede53cc5ab5 (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/c5c26b1bf2e045318460319d70d265ec75... commit c5c26b1bf2e045318460319d70d265ec75e6d3fd Author: Pavan Balaji <[email protected]> Date: Mon Aug 25 17:05:23 2014 -0500 Mellanox patch for a netmod-specific communicator context. Move device specific comm structure components to 'dev'. Move channel-specific code into a different channel structure. The context stores MXM-specific information for sending/receiving data. Signed-off-by: Devendar Bureddy <[email protected]> diff --git a/src/mpid/ch3/channels/nemesis/include/mpidi_ch3_pre.h b/src/mpid/ch3/channels/nemesis/include/mpidi_ch3_pre.h index 57e6230..8289043 100644 --- a/src/mpid/ch3/channels/nemesis/include/mpidi_ch3_pre.h +++ b/src/mpid/ch3/channels/nemesis/include/mpidi_ch3_pre.h @@ -31,6 +31,7 @@ typedef struct { struct MPID_nem_barrier_vars *barrier_vars; /* shared memory variables used in barrier */ + void *netmod_priv; /* netmod communicator private data */ } MPIDI_CH3I_CH_comm_t; typedef enum MPIDI_CH3I_VC_state 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 13b4a5a..44283d7 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c +++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c @@ -584,7 +584,7 @@ static int _mxm_add_comm(MPID_Comm * comm, void *param) mpi_errno, MPI_ERR_OTHER, "**mxm_mq_create", "**mxm_mq_create %s", mxm_error_string(ret)); - comm->ch.netmod_comm = (void *) mxm_mq; + comm->dev.ch.netmod_priv = (void *) mxm_mq; fn_exit: return mpi_errno; @@ -595,7 +595,7 @@ static int _mxm_add_comm(MPID_Comm * comm, void *param) static int _mxm_del_comm(MPID_Comm * comm, void *param) { int mpi_errno = MPI_SUCCESS; - mxm_mq_h mxm_mq = (mxm_mq_h) comm->ch.netmod_comm; + mxm_mq_h mxm_mq = (mxm_mq_h) comm->dev.ch.netmod_priv; _dbg_mxm_output(6, "Del COMM comm %p (context %d rank %d) \n", comm, comm->context_id, comm->rank); @@ -603,7 +603,7 @@ static int _mxm_del_comm(MPID_Comm * comm, void *param) if (mxm_mq) mxm_mq_destroy(mxm_mq); - comm->ch.netmod_comm = NULL; + comm->dev.ch.netmod_priv = NULL; fn_exit: return mpi_errno; diff --git a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c index df6fa59..eef92ee 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c +++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c @@ -198,7 +198,7 @@ int MPID_nem_mxm_recv(MPIDI_VC_t * vc, MPID_Request * rreq) mpi_errno = _mxm_irecv((vc ? VC_FIELD(vc, mxm_ep) : NULL), REQ_BASE(rreq), tag, - (rreq->comm ? (mxm_mq_h) rreq->comm->ch.netmod_comm : mxm_obj-> + (rreq->comm ? (mxm_mq_h) rreq->comm->dev.ch.netmod_priv : mxm_obj-> mxm_mq), _mxm_tag_mpi2mxm(tag, context_id)); if (mpi_errno) MPIU_ERR_POP(mpi_errno); diff --git a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_probe.c b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_probe.c index a03d410..001908a 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_probe.c +++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_probe.c @@ -24,7 +24,7 @@ int MPID_nem_mxm_probe(MPIDI_VC_t * vc, int source, int tag, MPID_Comm * comm, i MPIDI_FUNC_ENTER(MPID_STATE_MXM_PROBE); mxm_req.base.state = MXM_REQ_NEW; - mxm_req.base.mq = (mxm_mq_h) comm->ch.netmod_comm; + mxm_req.base.mq = (mxm_mq_h) comm->dev.ch.netmod_priv; mxm_req.base.conn = (vc ? VC_FIELD(vc, mxm_ep->mxm_conn) : 0); mxm_req.tag = _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset); @@ -68,7 +68,7 @@ int MPID_nem_mxm_iprobe(MPIDI_VC_t * vc, int source, int tag, MPID_Comm * comm, MPIDI_FUNC_ENTER(MPID_STATE_MXM_IPROBE); mxm_req.base.state = MXM_REQ_NEW; - mxm_req.base.mq = (mxm_mq_h) comm->ch.netmod_comm; + mxm_req.base.mq = (mxm_mq_h) comm->dev.ch.netmod_priv; mxm_req.base.conn = (vc ? VC_FIELD(vc, mxm_ep->mxm_conn) : 0); mxm_req.tag = _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset); diff --git a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_send.c b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_send.c index 5371625..6a6a9a3 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_send.c +++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_send.c @@ -274,7 +274,7 @@ int MPID_nem_mxm_send(MPIDI_VC_t * vc, const void *buf, int count, MPI_Datatype (VC_FIELD(vc, pending_sends)) += 1; mpi_errno = _mxm_isend(VC_FIELD(vc, mxm_ep), REQ_BASE(sreq), MXM_MPICH_ISEND, - (mxm_mq_h) comm->ch.netmod_comm, comm->rank, tag, _mxm_tag_mpi2mxm(tag, + (mxm_mq_h) comm->dev.ch.netmod_priv, comm->rank, tag, _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset), @@ -371,7 +371,7 @@ int MPID_nem_mxm_ssend(MPIDI_VC_t * vc, const void *buf, int count, MPI_Datatype (VC_FIELD(vc, pending_sends)) += 1; mpi_errno = _mxm_isend(VC_FIELD(vc, mxm_ep), REQ_BASE(sreq), MXM_MPICH_ISEND_SYNC, - (mxm_mq_h) comm->ch.netmod_comm, comm->rank, tag, _mxm_tag_mpi2mxm(tag, + (mxm_mq_h) comm->dev.ch.netmod_priv, comm->rank, tag, _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset), @@ -468,7 +468,7 @@ int MPID_nem_mxm_isend(MPIDI_VC_t * vc, const void *buf, int count, MPI_Datatype (VC_FIELD(vc, pending_sends)) += 1; mpi_errno = _mxm_isend(VC_FIELD(vc, mxm_ep), REQ_BASE(sreq), MXM_MPICH_ISEND, - (mxm_mq_h) comm->ch.netmod_comm, comm->rank, tag, _mxm_tag_mpi2mxm(tag, + (mxm_mq_h) comm->dev.ch.netmod_priv, comm->rank, tag, _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset), @@ -566,7 +566,7 @@ int MPID_nem_mxm_issend(MPIDI_VC_t * vc, const void *buf, int count, MPI_Datatyp (VC_FIELD(vc, pending_sends)) += 1; mpi_errno = _mxm_isend(VC_FIELD(vc, mxm_ep), REQ_BASE(sreq), MXM_MPICH_ISEND_SYNC, - (mxm_mq_h) comm->ch.netmod_comm, comm->rank, tag, _mxm_tag_mpi2mxm(tag, + (mxm_mq_h) comm->dev.ch.netmod_priv, comm->rank, tag, _mxm_tag_mpi2mxm(tag, comm->context_id + context_offset), http://git.mpich.org/mpich.git/commitdiff/765f0a299e2c38dec805278653433ba2ee... commit 765f0a299e2c38dec805278653433ba2eef9e354 Author: Pavan Balaji <[email protected]> Date: Mon Aug 25 13:55:28 2014 -0500 Use CVARS instead of env in the MXM netmod. The mxm netmod was using getenv directly instead of going through the CVAR interface. This disallows users from controlling it through MPI_T. Signed-off-by: Devendar Bureddy <[email protected]> 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 eafe66a..13b4a5a 100644 --- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c +++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_init.c @@ -14,6 +14,36 @@ #include "mpid_nem_impl.h" #include "mxm_impl.h" +/* +=== BEGIN_MPI_T_CVAR_INFO_BLOCK === + +cvars: + - name : MPIR_CVAR_NEMESIS_MXM_BULK_CONNECT + category : CH3 + type : boolean + default : false + class : none + verbosity : MPI_T_VERBOSITY_USER_BASIC + scope : MPI_T_SCOPE_ALL_EQ + description : >- + If true, force mxm to connect all processes at initialization + time. + + - name : MPIR_CVAR_NEMESIS_MXM_BULK_DISCONNECT + category : CH3 + type : boolean + default : false + class : none + verbosity : MPI_T_VERBOSITY_USER_BASIC + scope : MPI_T_SCOPE_ALL_EQ + description : >- + If true, force mxm to disconnect all processes at + finalization time. + +=== END_MPI_T_CVAR_INFO_BLOCK === +*/ + + MPID_nem_netmod_funcs_t MPIDI_nem_mxm_funcs = { MPID_nem_mxm_init, MPID_nem_mxm_finalize, @@ -362,11 +392,9 @@ static int _mxm_conf(void) "%ld.%ld", (cur_ver >> MXM_MAJOR_BIT) & 0xff, (cur_ver >> MXM_MINOR_BIT) & 0xff); #endif - env_val = getenv("MPICH_NETMOD_MXM_BULK_CONNECT"); - _mxm_obj.conf.bulk_connect = (env_val ? atoi(env_val) : (cur_ver < MXM_VERSION(3, 2) ? 0 : 1)); - env_val = getenv("MPICH_NETMOD_MXM_BULK_DISCONNECT"); - _mxm_obj.conf.bulk_disconnect = (env_val ? - atoi(env_val) : (cur_ver < MXM_VERSION(3, 2) ? 0 : 1)); + _mxm_obj.conf.bulk_connect = cur_ver < MXM_VERSION(3, 2) ? 0 : MPIR_CVAR_NEMESIS_MXM_BULK_CONNECT; + _mxm_obj.conf.bulk_disconnect = cur_ver < MXM_VERSION(3, 2) ? 0 : MPIR_CVAR_NEMESIS_MXM_BULK_DISCONNECT; + if (cur_ver < MXM_VERSION(3, 2) && (_mxm_obj.conf.bulk_connect || _mxm_obj.conf.bulk_disconnect)) { _mxm_obj.conf.bulk_connect = 0; ----------------------------------------------------------------------- Summary of changes: .../ch3/channels/nemesis/include/mpidi_ch3_pre.h | 1 + .../ch3/channels/nemesis/netmod/mxm/mxm_init.c | 44 ++++++++++++++++---- .../ch3/channels/nemesis/netmod/mxm/mxm_poll.c | 2 +- .../ch3/channels/nemesis/netmod/mxm/mxm_probe.c | 4 +- .../ch3/channels/nemesis/netmod/mxm/mxm_send.c | 8 ++-- 5 files changed, 44 insertions(+), 15 deletions(-) hooks/post-receive -- MPICH primary repository
participants (1)
-
noreply@mpich.org