From fa0a0b1597c5b65d58e57d00a33ad87baaa1f823 Mon Sep 17 00:00:00 2001 From: Sergey Oblomov Date: Thu, 16 May 2019 20:13:16 +0300 Subject: [PATCH 1/2] COMMON/UCX: init memhooks infra on external hooks only - initialize memory hooks infrastructure only in case if external memory hooks are requested Signed-off-by: Sergey Oblomov (cherry picked from commit a0a93060668cd11a783cc94c753efb3129df9dde) --- opal/mca/common/ucx/common_ucx.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/opal/mca/common/ucx/common_ucx.c b/opal/mca/common/ucx/common_ucx.c index 7ccde24bc6..e8debc4c7f 100644 --- a/opal/mca/common/ucx/common_ucx.c +++ b/opal/mca/common/ucx/common_ucx.c @@ -16,6 +16,7 @@ #include "opal/memoryhooks/memory.h" #include +#include /***********************************************************************/ @@ -91,23 +92,22 @@ OPAL_DECLSPEC void opal_common_ucx_mca_register(void) opal_common_ucx.output = opal_output_open(NULL); opal_output_set_verbosity(opal_common_ucx.output, opal_common_ucx.verbose); - ret = mca_base_framework_open(&opal_memory_base_framework, 0); - if (OPAL_SUCCESS != ret) { - /* failed to initialize memory framework - just exit */ - MCA_COMMON_UCX_VERBOSE(1, "failed to initialize memory base framework: %d, " - "memory hooks will not be used", ret); - return; - } - /* Set memory hooks */ - if (opal_common_ucx.opal_mem_hooks && - (OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) == - ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) & - opal_mem_hooks_support_level())) - { - MCA_COMMON_UCX_VERBOSE(1, "%s", "using OPAL memory hooks as external events"); - ucm_set_external_event(UCM_EVENT_VM_UNMAPPED); - opal_mem_hooks_register_release(opal_common_ucx_mem_release_cb, NULL); + if (opal_common_ucx.opal_mem_hooks) { + ret = mca_base_framework_open(&opal_memory_base_framework, 0); + if (OPAL_SUCCESS != ret) { + /* failed to initialize memory framework - just exit */ + MCA_COMMON_UCX_VERBOSE(1, "failed to initialize memory base framework: %d, " + "memory hooks will not be used", ret); + return; + } + + if (ucs_test_all_flags(opal_mem_hooks_support_level(), + OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT)) { + MCA_COMMON_UCX_VERBOSE(1, "%s", "using OPAL memory hooks as external events"); + ucm_set_external_event(UCM_EVENT_VM_UNMAPPED); + opal_mem_hooks_register_release(opal_common_ucx_mem_release_cb, NULL); + } } } From 1944295da385b500dc1cbb31df76f4c0dea59381 Mon Sep 17 00:00:00 2001 From: Sergey Oblomov Date: Thu, 16 May 2019 20:45:53 +0300 Subject: [PATCH 2/2] COMMON/UCX: removed ucs stuff Signed-off-by: Sergey Oblomov (cherry picked from commit ebc457baf5ded5dd46cd73918a2f69555f408c54) --- opal/mca/common/ucx/common_ucx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opal/mca/common/ucx/common_ucx.c b/opal/mca/common/ucx/common_ucx.c index e8debc4c7f..a3a12a8fa8 100644 --- a/opal/mca/common/ucx/common_ucx.c +++ b/opal/mca/common/ucx/common_ucx.c @@ -16,7 +16,6 @@ #include "opal/memoryhooks/memory.h" #include -#include /***********************************************************************/ @@ -102,8 +101,9 @@ OPAL_DECLSPEC void opal_common_ucx_mca_register(void) return; } - if (ucs_test_all_flags(opal_mem_hooks_support_level(), - OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT)) { + if ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) == + ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) & + opal_mem_hooks_support_level())) { MCA_COMMON_UCX_VERBOSE(1, "%s", "using OPAL memory hooks as external events"); ucm_set_external_event(UCM_EVENT_VM_UNMAPPED); opal_mem_hooks_register_release(opal_common_ucx_mem_release_cb, NULL);