1
1

rtc/hwloc: fix MCA parameter handling

always re-initialize vmhole *before* mca_base_component_var_register()
otherwise the vmhole gets NULL'ified if orte is initialized a second time.
that typically occurs when Open MPI is configure'd with --disable-dlopen
and the app does MPI_T_init_thread(); MPI_T_finalize(); MPI_T_init_thread();

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
Gilles Gouaillardet 2017-08-03 14:42:18 +09:00
родитель 2216b80b82
Коммит 6b6e65a5bc

Просмотреть файл

@ -3,6 +3,8 @@
* Copyright (c) 2014-2017 Intel, Inc. All rights reserved. * Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights * Copyright (c) 2015 Los Alamos National Security, LLC. All rights
* reserved. * reserved.
* Copyright (c) 2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
* *
* Additional copyrights may follow * Additional copyrights may follow
@ -45,7 +47,8 @@ orte_rtc_hwloc_component_t mca_rtc_hwloc_component = {
.kind = VM_HOLE_BIGGEST .kind = VM_HOLE_BIGGEST
}; };
static char *vmhole = "biggest"; static char *biggest = "biggest";
static char *vmhole;
static int rtc_hwloc_register(void) static int rtc_hwloc_register(void)
{ {
@ -60,6 +63,7 @@ static int rtc_hwloc_register(void)
&my_priority); &my_priority);
mca_rtc_hwloc_component.kind = VM_HOLE_BIGGEST; mca_rtc_hwloc_component.kind = VM_HOLE_BIGGEST;
vmhole = biggest;
(void) mca_base_component_var_register(c, "vmhole", (void) mca_base_component_var_register(c, "vmhole",
"Kind of VM hole to identify - none, begin, biggest, libs, heap, stack (default=biggest)", "Kind of VM hole to identify - none, begin, biggest, libs, heap, stack (default=biggest)",
MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0, MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,