Merge pull request #5458 from rhc54/cmr40/px
Default to internal PMIx if newer than external
Этот коммит содержится в:
Коммит
4b840789e9
@ -375,7 +375,7 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
|
|||||||
#endif
|
#endif
|
||||||
], [])],
|
], [])],
|
||||||
[AC_MSG_RESULT([found])
|
[AC_MSG_RESULT([found])
|
||||||
opal_external_pmix_version=1.2.x
|
opal_external_pmix_version=1x
|
||||||
opal_external_pmix_version_found=1
|
opal_external_pmix_version_found=1
|
||||||
opal_external_have_pmix1=1
|
opal_external_have_pmix1=1
|
||||||
opal_external_pmix_happy=yes],
|
opal_external_pmix_happy=yes],
|
||||||
@ -402,6 +402,15 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
|
|||||||
AC_MSG_WARN([header/library files were not found])
|
AC_MSG_WARN([header/library files were not found])
|
||||||
AC_MSG_ERROR([Cannot continue])])
|
AC_MSG_ERROR([Cannot continue])])
|
||||||
|
|
||||||
|
# Final check - if they didn't point us explicitly at an external version
|
||||||
|
# but we found one anyway, use the internal version if it is higher
|
||||||
|
AS_IF([test "$opal_external_pmix_version" != "internal" && (test -z "$with_pmix" || test "$with_pmix" = "yes")],
|
||||||
|
[AS_IF([test "$opal_external_pmix_version" != "3x"],
|
||||||
|
[AC_MSG_WARN([discovered external PMIx version is less than internal version 3.x])
|
||||||
|
AC_MSG_WARN([using internal PMIx])
|
||||||
|
opal_external_pmix_version=internal
|
||||||
|
opal_external_pmix_happy=no])])
|
||||||
|
|
||||||
AC_MSG_CHECKING([PMIx version to be used])
|
AC_MSG_CHECKING([PMIx version to be used])
|
||||||
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
||||||
[AC_MSG_RESULT([external($opal_external_pmix_version)])
|
[AC_MSG_RESULT([external($opal_external_pmix_version)])
|
||||||
@ -415,8 +424,8 @@ AC_DEFUN([OPAL_CHECK_PMIX],[
|
|||||||
[Whether the external PMIx library is v1])
|
[Whether the external PMIx library is v1])
|
||||||
AM_CONDITIONAL([OPAL_WANT_PRUN], [test "$opal_prun_happy" = "yes"])
|
AM_CONDITIONAL([OPAL_WANT_PRUN], [test "$opal_prun_happy" = "yes"])
|
||||||
|
|
||||||
AS_IF([test "$opal_external_pmix_version" = "1.2.x"],
|
AS_IF([test "$opal_external_pmix_version" = "1x"],
|
||||||
[OPAL_SUMMARY_ADD([[Miscellaneous]],[[PMIx support]], [opal_pmix], [$opal_external_pmix_version: WARNING - DYNAMIC OPS NOT SUPPORTED])],
|
[OPAL_SUMMARY_ADD([[Miscellaneous]],[[PMIx support]], [opal_pmix], [1.2.x: WARNING - DYNAMIC OPS NOT SUPPORTED])],
|
||||||
[OPAL_SUMMARY_ADD([[Miscellaneous]],[[PMIx support]], [opal_pmix], [$opal_external_pmix_version])])
|
[OPAL_SUMMARY_ADD([[Miscellaneous]],[[PMIx support]], [opal_pmix], [$opal_external_pmix_version])])
|
||||||
|
|
||||||
OPAL_VAR_SCOPE_POP
|
OPAL_VAR_SCOPE_POP
|
||||||
|
@ -33,9 +33,7 @@ AC_DEFUN([MCA_opal_pmix_ext1x_CONFIG],[
|
|||||||
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
AS_IF([test "$opal_external_pmix_happy" = "yes"],
|
||||||
[ # check for the 1.x version ( >= 1.1.4 ?)
|
[ # check for the 1.x version ( >= 1.1.4 ?)
|
||||||
AC_MSG_CHECKING([if external component is version 1.x])
|
AC_MSG_CHECKING([if external component is version 1.x])
|
||||||
AS_IF([test "$opal_external_pmix_version" = "11" ||
|
AS_IF([test "$opal_external_pmix_version" = "1x"],
|
||||||
test "$opal_external_pmix_version" = "12" ||
|
|
||||||
test "$opal_external_pmix_version" = "1x"],
|
|
||||||
[AC_MSG_RESULT([yes])
|
[AC_MSG_RESULT([yes])
|
||||||
AS_IF([test "$opal_event_external_support" != "yes"],
|
AS_IF([test "$opal_event_external_support" != "yes"],
|
||||||
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT])
|
[AC_MSG_WARN([EXTERNAL PMIX SUPPORT REQUIRES USE OF EXTERNAL LIBEVENT])
|
||||||
|
@ -356,6 +356,17 @@ void pmix_server_notify(int status, orte_process_name_t* sender,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* protect against infinite loops by marking that this notification was
|
||||||
|
* passed down to the server by me */
|
||||||
|
if (NULL == cd->info) {
|
||||||
|
cd->info = OBJ_NEW(opal_list_t);
|
||||||
|
}
|
||||||
|
val = OBJ_NEW(opal_value_t);
|
||||||
|
val->key = strdup("orte.notify.donotloop");
|
||||||
|
val->type = OPAL_BOOL;
|
||||||
|
val->data.flag = true;
|
||||||
|
opal_list_append(cd->info, &val->super);
|
||||||
|
|
||||||
opal_output_verbose(2, orte_pmix_server_globals.output,
|
opal_output_verbose(2, orte_pmix_server_globals.output,
|
||||||
"%s NOTIFYING PMIX SERVER OF STATUS %d",
|
"%s NOTIFYING PMIX SERVER OF STATUS %d",
|
||||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ret);
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ret);
|
||||||
@ -382,6 +393,14 @@ int pmix_server_notify_event(int code, opal_process_name_t *source,
|
|||||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||||
ORTE_NAME_PRINT(source), code);
|
ORTE_NAME_PRINT(source), code);
|
||||||
|
|
||||||
|
/* check to see if this is one we sent down */
|
||||||
|
OPAL_LIST_FOREACH(val, info, opal_value_t) {
|
||||||
|
if (0 == strcmp(val->key, "orte.notify.donotloop")) {
|
||||||
|
/* yep - do not process */
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* a local process has generated an event - we need to xcast it
|
/* a local process has generated an event - we need to xcast it
|
||||||
* to all the daemons so it can be passed down to their local
|
* to all the daemons so it can be passed down to their local
|
||||||
* procs */
|
* procs */
|
||||||
@ -448,6 +467,7 @@ int pmix_server_notify_event(int code, opal_process_name_t *source,
|
|||||||
/* maintain accounting */
|
/* maintain accounting */
|
||||||
OBJ_RELEASE(sig);
|
OBJ_RELEASE(sig);
|
||||||
|
|
||||||
|
done:
|
||||||
/* execute the callback */
|
/* execute the callback */
|
||||||
if (NULL != cbfunc) {
|
if (NULL != cbfunc) {
|
||||||
cbfunc(ORTE_SUCCESS, cbdata);
|
cbfunc(ORTE_SUCCESS, cbdata);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user