diff --git a/ompi/mca/mtl/mxm/mtl_mxm_component.c b/ompi/mca/mtl/mxm/mtl_mxm_component.c index 69251389be..f2022f37fb 100644 --- a/ompi/mca/mtl/mxm/mtl_mxm_component.c +++ b/ompi/mca/mtl/mxm/mtl_mxm_component.c @@ -72,6 +72,12 @@ static int ompi_mtl_mxm_component_register(void) 0, &ompi_mtl_mxm.verbose); + mca_base_param_reg_int(&mca_mtl_mxm_component.super.mtl_version, "enable", + "Enable/Disable MXM component", + false, false, + 1, + &ompi_mtl_mxm.enabled); + return OMPI_SUCCESS; } @@ -82,6 +88,11 @@ static int ompi_mtl_mxm_component_open(void) mca_mtl_mxm_output = opal_output_open(NULL); opal_output_set_verbosity(mca_mtl_mxm_output, ompi_mtl_mxm.verbose); + if (0 == ompi_mtl_mxm.enabled) { + MXM_VERBOSE(1, "MTL/MXM was disabled on user request"); + return OPAL_ERR_NOT_AVAILABLE; + } + mxm_fill_context_opts(&ompi_mtl_mxm.mxm_opts); err = mxm_init(&ompi_mtl_mxm.mxm_opts, &ompi_mtl_mxm.mxm_context); if (MXM_OK != err) { diff --git a/ompi/mca/mtl/mxm/mtl_mxm_types.h b/ompi/mca/mtl/mxm/mtl_mxm_types.h index efda09ae67..f4a1bffb68 100644 --- a/ompi/mca/mtl/mxm/mtl_mxm_types.h +++ b/ompi/mca/mtl/mxm/mtl_mxm_types.h @@ -27,6 +27,7 @@ BEGIN_C_DECLS typedef struct mca_mtl_mxm_module_t { mca_mtl_base_module_t super; /**< base MTL interface */ int verbose; + int enabled; mxm_h mxm_context; mxm_context_opts_t mxm_opts; mxm_ep_h ep;