diff --git a/src/mca/base/mca_base_init_select_modules.c b/src/mca/base/mca_base_init_select_modules.c index 8878cef5d9..2702c0fea3 100644 --- a/src/mca/base/mca_base_init_select_modules.c +++ b/src/mca/base/mca_base_init_select_modules.c @@ -15,6 +15,7 @@ #include "mca/ptl/base/base.h" #include "mca/pml/pml.h" #include "mca/pml/base/base.h" +#include "mca/mpool/base/base.h" /* @@ -32,10 +33,17 @@ int mca_base_init_select_modules(int requested, ompi_list_t colls; bool user_threads, hidden_threads; + /* Make final lists of available modules (i.e., call the query/init functions and see if they return happiness). For pml, there will only be one (because there's only one for the whole process), but for ptl and coll, we'll get lists back. */ + + if (OMPI_SUCCESS != mca_mpool_base_init(&user_threads)) { + return OMPI_ERROR; + } + allow_multi_user_threads |= user_threads; + /* JMS: At some point, we'll need to feed it the thread level to ensure to pick one high enough (e.g., if we need CR) */ diff --git a/src/runtime/ompi_mpi_init.c b/src/runtime/ompi_mpi_init.c index 3b7767be66..065259178c 100644 --- a/src/runtime/ompi_mpi_init.c +++ b/src/runtime/ompi_mpi_init.c @@ -14,6 +14,10 @@ #include "op/op.h" #include "mca/base/base.h" #include "mca/base/base.h" +#include "mca/allocator/base/base.h" +#include "mca/allocator/allocator.h" +#include "mca/mpool/base/base.h" +#include "mca/mpool/mpool.h" #include "mca/ptl/ptl.h" #include "mca/ptl/base/base.h" #include "mca/pml/pml.h" @@ -71,7 +75,14 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided) /* Open up relevant MCA modules. Do not open io, topo, or one module types here -- they are loaded upon demand (i.e., upon relevant constructors). */ - + if (OMPI_SUCCESS != (ret = mca_allocator_base_open())) { + /* JMS show_help */ + return ret; + } + if (OMPI_SUCCESS != (ret = mca_mpool_base_open())) { + /* JMS show_help */ + return ret; + } if (OMPI_SUCCESS != (ret = mca_pml_base_open())) { /* JMS show_help */ return ret;