OSHMEM: bml initialization is moved into ompi_init
it fixes race of mca_var segfault in finalization of shmem based on this thread: http://www.open-mpi.org/community/lists/devel/2014/01/13778.php Refs trac:3763 fixed by Igor, reviewed by Brian This commit was SVN r30304. The following Trac tickets were found above: Ticket 3763 --> https://svn.open-mpi.org/trac/ompi/ticket/3763
Этот коммит содержится в:
родитель
31093f777b
Коммит
b7750ccbf4
@ -60,7 +60,9 @@
|
||||
#include "ompi/runtime/mpiruntime.h"
|
||||
#include "ompi/attribute/attribute.h"
|
||||
#include "ompi/mca/pml/pml.h"
|
||||
#include "ompi/mca/bml/bml.h"
|
||||
#include "ompi/mca/pml/base/base.h"
|
||||
#include "ompi/mca/bml/base/base.h"
|
||||
#include "ompi/mca/osc/base/base.h"
|
||||
#include "ompi/mca/coll/base/base.h"
|
||||
#include "ompi/mca/rte/rte.h"
|
||||
@ -393,6 +395,9 @@ int ompi_mpi_finalize(void)
|
||||
if (OMPI_SUCCESS != (ret = mca_base_framework_close(&ompi_coll_base_framework))) {
|
||||
return ret;
|
||||
}
|
||||
if (OMPI_SUCCESS != (ret = mca_base_framework_close(&ompi_bml_base_framework))) {
|
||||
return ret;
|
||||
}
|
||||
if (OMPI_SUCCESS != (ret = mca_base_framework_close(&ompi_mpool_base_framework))) {
|
||||
return ret;
|
||||
}
|
||||
|
@ -72,7 +72,9 @@
|
||||
#include "ompi/mca/rcache/rcache.h"
|
||||
#include "ompi/mca/mpool/base/base.h"
|
||||
#include "ompi/mca/pml/pml.h"
|
||||
#include "ompi/mca/bml/bml.h"
|
||||
#include "ompi/mca/pml/base/base.h"
|
||||
#include "ompi/mca/bml/base/base.h"
|
||||
#include "ompi/mca/osc/base/base.h"
|
||||
#include "ompi/mca/coll/base/base.h"
|
||||
#include "ompi/mca/io/io.h"
|
||||
@ -562,6 +564,10 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
|
||||
error = "mca_mpool_base_open() failed";
|
||||
goto error;
|
||||
}
|
||||
if (OMPI_SUCCESS != (ret = mca_base_framework_open(&ompi_bml_base_framework, 0))) {
|
||||
error = "mca_bml_base_open() failed";
|
||||
goto error;
|
||||
}
|
||||
if (OMPI_SUCCESS != (ret = mca_base_framework_open(&ompi_pml_base_framework, 0))) {
|
||||
error = "mca_pml_base_open() failed";
|
||||
goto error;
|
||||
@ -598,6 +604,13 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (OMPI_SUCCESS !=
|
||||
(ret = mca_bml_base_init(OMPI_ENABLE_PROGRESS_THREADS,
|
||||
OMPI_ENABLE_THREAD_MULTIPLE))) {
|
||||
error = "mca_bml_base_init() failed";
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (OMPI_SUCCESS !=
|
||||
(ret = mca_pml_base_select(OMPI_ENABLE_PROGRESS_THREADS,
|
||||
OMPI_ENABLE_THREAD_MULTIPLE))) {
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "oshmem_config.h"
|
||||
#include "oshmem/runtime/params.h"
|
||||
#include "oshmem/mca/spml/spml.h"
|
||||
#include "ompi/mca/bml/base/base.h"
|
||||
#include "spml_yoda_component.h"
|
||||
#include "oshmem/mca/spml/yoda/spml_yoda_rdmafrag.h"
|
||||
#include "oshmem/mca/spml/yoda/spml_yoda_putreq.h"
|
||||
@ -86,16 +85,13 @@ static int mca_spml_yoda_component_register(void)
|
||||
return OSHMEM_SUCCESS;
|
||||
}
|
||||
|
||||
static int mca_spml_yoda_component_open(void) {
|
||||
return mca_base_framework_open(&ompi_bml_base_framework, MCA_BASE_OPEN_DEFAULT);
|
||||
static int mca_spml_yoda_component_open(void)
|
||||
{
|
||||
return OSHMEM_SUCCESS;
|
||||
}
|
||||
|
||||
static int mca_spml_yoda_component_close(void)
|
||||
{
|
||||
int rc;
|
||||
if (OMPI_SUCCESS != (rc = mca_base_framework_close(&ompi_bml_base_framework))) {
|
||||
return rc;
|
||||
}
|
||||
return OSHMEM_SUCCESS;
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user