1
1

memory/patcher: initialize patcher framework when needed

This commit moves the patcher framework initialization to the
memory/patcher component.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
Этот коммит содержится в:
Nathan Hjelm 2016-05-04 12:46:42 -06:00
родитель 4771c9ece6
Коммит 41f00b7465
3 изменённых файлов: 17 добавлений и 13 удалений

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

@ -31,6 +31,7 @@
#include "opal/mca/memory/base/empty.h"
#include "opal/mca/memory/base/base.h"
#include "opal/memoryhooks/memory.h"
#include "opal/mca/patcher/base/base.h"
#include <stdlib.h>
#include <stdint.h>
@ -395,11 +396,16 @@ static int patcher_register (void)
static int patcher_query (int *priority)
{
if (opal_patcher->patch_symbol) {
*priority = mca_memory_patcher_priority;
} else {
int rc;
rc = mca_base_framework_open (&opal_patcher_base_framework, 0);
if (OPAL_SUCCESS != rc) {
*priority = -1;
return OPAL_SUCCESS;
}
*priority = mca_memory_patcher_priority;
return OPAL_SUCCESS;
}
@ -414,6 +420,12 @@ static int patcher_open (void)
was_executed_already = 1;
rc = opal_patcher_base_select ();
if (OPAL_SUCCESS != rc) {
mca_base_framework_close (&opal_patcher_base_framework);
return OPAL_ERR_NOT_AVAILABLE;
}
/* set memory hooks support level */
opal_mem_hooks_set_support (OPAL_MEMORY_FREE_SUPPORT | OPAL_MEMORY_MUNMAP_SUPPORT);
@ -461,6 +473,8 @@ static int patcher_open (void)
static int patcher_close(void)
{
mca_base_framework_close (&opal_patcher_base_framework);
/* Note that we don't need to unpatch any symbols here; the
patcher framework will take care of all of that for us. */
return OPAL_SUCCESS;

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

@ -40,7 +40,6 @@
#include "opal/mca/installdirs/base/base.h"
#include "opal/mca/memchecker/base/base.h"
#include "opal/mca/memcpy/base/base.h"
#include "opal/mca/patcher/base/base.h"
#include "opal/mca/backtrace/base/base.h"
#include "opal/mca/sec/base/base.h"
#include "opal/mca/timer/base/base.h"
@ -153,7 +152,6 @@ opal_finalize(void)
(void) mca_base_framework_close(&opal_backtrace_base_framework);
(void) mca_base_framework_close(&opal_memchecker_base_framework);
(void) mca_base_framework_close(&opal_patcher_base_framework);
/* close the memcpy framework */
(void) mca_base_framework_close(&opal_memcpy_base_framework);

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

@ -431,14 +431,6 @@ opal_init(int* pargc, char*** pargv)
goto return_error;
}
if (OPAL_SUCCESS != (ret = mca_base_framework_open(&opal_patcher_base_framework, 0))) {
error = "opal_patcher_base_open";
goto return_error;
}
/* select a patcher module. if a patcher module can not be found it is not an error. */
(void) opal_patcher_base_select ();
/* initialize the memory manager / tracker */
if (OPAL_SUCCESS != (ret = opal_mem_hooks_init())) {
error = "opal_mem_hooks_init";