1
1

Merge pull request #6692 from vspetrov/v4.0.x

V4.0.x Coll/hcoll: don't init opal memhooks unless explicitely requested
Этот коммит содержится в:
Geoff Paulsen 2019-06-03 15:00:36 -05:00 коммит произвёл GitHub
родитель 6c74d4031b 8f82c899bc
Коммит a04f5f0c70
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 16 добавлений и 24 удалений

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

@ -209,29 +209,10 @@ static int hcoll_open(void)
{
mca_coll_hcoll_component_t *cm;
cm = &mca_coll_hcoll_component;
mca_coll_hcoll_output = opal_output_open(NULL);
opal_output_set_verbosity(mca_coll_hcoll_output, cm->hcoll_verbose);
hcoll_rte_fns_setup();
cm->libhcoll_initialized = false;
(void)mca_base_framework_open(&opal_memory_base_framework, 0);
/* Register memory hooks */
if ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) ==
((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) &
opal_mem_hooks_support_level()))
{
setenv("MXM_HCOLL_MEM_ON_DEMAND_MAP", "y", 0);
HCOL_VERBOSE(1, "Enabling on-demand memory mapping");
cm->using_mem_hooks = 1;
} else {
HCOL_VERBOSE(1, "Disabling on-demand memory mapping");
cm->using_mem_hooks = 0;
}
return OMPI_SUCCESS;
}

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

@ -301,17 +301,28 @@ mca_coll_hcoll_comm_query(struct ompi_communicator_t *comm, int *priority)
HCOL_ERROR("Hcol library init failed");
return NULL;
}
#if HCOLL_API >= HCOLL_VERSION(3,2)
if (cm->using_mem_hooks && cm->init_opts->mem_hook_needed) {
if (cm->init_opts->mem_hook_needed) {
#else
if (cm->using_mem_hooks && hcoll_check_mem_release_cb_needed()) {
if (hcoll_check_mem_release_cb_needed()) {
#endif
rc = mca_base_framework_open(&opal_memory_base_framework, 0);
if (OPAL_SUCCESS != rc) {
HCOL_VERBOSE(1, "failed to initialize memory base framework: %d, "
"memory hooks will not be used", rc);
} else {
if ((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) ==
((OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT) &
opal_mem_hooks_support_level())) {
HCOL_VERBOSE(1, "using OPAL memory hooks as external events");
cm->using_mem_hooks = 1;
opal_mem_hooks_register_release(mca_coll_hcoll_mem_release_cb, NULL);
setenv("MXM_HCOLL_MEM_ON_DEMAND_MAP", "y", 0);
}
}
} else {
cm->using_mem_hooks = 0;
}
copy_fn.attr_communicator_copy_fn = (MPI_Comm_internal_copy_attr_function*) MPI_COMM_NULL_COPY_FN;
del_fn.attr_communicator_delete_fn = hcoll_comm_attr_del_fn;
err = ompi_attr_create_keyval(COMM_ATTR, copy_fn, del_fn, &hcoll_comm_attr_keyval, NULL ,0, NULL);