From 4bfa0999b7be02fb5be4a6277ecb93910e521b4b Mon Sep 17 00:00:00 2001 From: "Nysal Jan K.A" Date: Tue, 15 Nov 2016 17:07:52 +0530 Subject: [PATCH] mpit: Fix MPI_T_pvar_get_index MPI_T_pvar_get_index was returning an incorrect index. The index was never set correctly while registering the performance variables. Additionally fix a missing case in the mca_base_var_type_t to MPI datatype conversion. This type is currently used for control variables registered by mxm, fca and hcoll components. Signed-off-by: Nysal Jan K.A (cherry picked from commit 25ba507adab2131d2cbffbbdfcb42d43c78c783a) Signed-off-by: Joshua Hursey --- ompi/mpi/tool/mpit_common.c | 1 + opal/mca/base/mca_base_pvar.c | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ompi/mpi/tool/mpit_common.c b/ompi/mpi/tool/mpit_common.c index 7756889b8f9..22b54db180d 100644 --- a/ompi/mpi/tool/mpit_common.c +++ b/ompi/mpi/tool/mpit_common.c @@ -60,6 +60,7 @@ int ompit_var_type_to_datatype (mca_base_var_type_t type, MPI_Datatype *datatype break; case MCA_BASE_VAR_TYPE_STRING: + case MCA_BASE_VAR_TYPE_VERSION_STRING: *datatype = MPI_CHAR; break; case MCA_BASE_VAR_TYPE_BOOL: diff --git a/opal/mca/base/mca_base_pvar.c b/opal/mca/base/mca_base_pvar.c index c7627ab4531..eaf7c0ec6d3 100644 --- a/opal/mca/base/mca_base_pvar.c +++ b/opal/mca/base/mca_base_pvar.c @@ -179,7 +179,7 @@ int mca_base_pvar_register (const char *project, const char *framework, const ch int bind, mca_base_pvar_flag_t flags, mca_base_get_value_fn_t get_value, mca_base_set_value_fn_t set_value, mca_base_notify_fn_t notify, void *ctx) { - int ret, group_index; + int ret, group_index, pvar_index; mca_base_pvar_t *pvar; /* assert on usage errors */ @@ -284,15 +284,18 @@ int mca_base_pvar_register (const char *project, const char *framework, const ch } } - /* add this performance variable to the MCA variable group */ - ret = mca_base_var_group_add_pvar (group_index, pvar_count); - if (0 > ret) { + pvar_index = opal_pointer_array_add (®istered_pvars, pvar); + if (0 > pvar_index) { break; } + pvar->pvar_index = pvar_index; - ret = opal_pointer_array_add (®istered_pvars, pvar); - if (0 > ret) { - break; + /* add this performance variable to the MCA variable group */ + if (0 <= group_index) { + ret = mca_base_var_group_add_pvar (group_index, pvar_index); + if (0 > ret) { + break; + } } opal_hash_table_set_value_ptr (&mca_base_pvar_index_hash, pvar->name, strlen (pvar->name),