[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.2-117-gc5c26b1
Service Account
noreply at mpich.org
Tue Aug 26 10:03:48 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 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/c5c26b1bf2e045318460319d70d265ec75e6d3fd
commit c5c26b1bf2e045318460319d70d265ec75e6d3fd
Author: Pavan Balaji <balaji at anl.gov>
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 <devendar at mellanox.com>
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/765f0a299e2c38dec805278653433ba2eef9e354
commit 765f0a299e2c38dec805278653433ba2eef9e354
Author: Pavan Balaji <balaji at anl.gov>
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 <devendar at mellanox.com>
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
More information about the commits
mailing list