1
1

Update to latest PMIx master, including disabling the pmi-1 and pmi-2 backward compatibility as these interfere with the s1,s2 components

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
Ralph Castain 2017-04-12 12:34:27 -07:00
родитель 539f71d0cc
Коммит 9f73974fe1
11 изменённых файлов: 108 добавлений и 73 удалений

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

@ -61,7 +61,7 @@ AC_DEFUN([MCA_opal_pmix_pmix2x_CONFIG],[
opal_pmix_pmix2x_timing_flag=--disable-pmix-timing opal_pmix_pmix2x_timing_flag=--disable-pmix-timing
fi fi
opal_pmix_pmix2x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_sm_flag $opal_pmix_pmix2x_timing_flag --without-tests-examples --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\"" opal_pmix_pmix2x_args="--with-pmix-symbol-rename=OPAL_MCA_PMIX2X_ $opal_pmix_pmix2x_sm_flag $opal_pmix_pmix2x_timing_flag --without-tests-examples --disable-pmix-backward-compatibility --disable-visibility --enable-embedded-libevent --with-libevent-header=\\\"opal/mca/event/$opal_event_base_include\\\""
AS_IF([test "$enable_debug" = "yes"], AS_IF([test "$enable_debug" = "yes"],
[opal_pmix_pmix2x_args="--enable-debug $opal_pmix_pmix2x_args" [opal_pmix_pmix2x_args="--enable-debug $opal_pmix_pmix2x_args"
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"], CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS -g"],

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

@ -23,14 +23,14 @@ release=0
# The only requirement is that it must be entirely printable ASCII # The only requirement is that it must be entirely printable ASCII
# characters and have no white space. # characters and have no white space.
greek=a1 greek=
# If repo_rev is empty, then the repository version number will be # If repo_rev is empty, then the repository version number will be
# obtained during "make dist" via the "git describe --tags --always" # obtained during "make dist" via the "git describe --tags --always"
# command, or with the date (if "git describe" fails) in the form of # command, or with the date (if "git describe" fails) in the form of
# "date<date>". # "date<date>".
repo_rev=gitc442ba8 repo_rev=git198a2b0
# If tarball_version is not empty, it is used as the version string in # If tarball_version is not empty, it is used as the version string in
# the tarball filename, regardless of all other versions listed in # the tarball filename, regardless of all other versions listed in
@ -44,7 +44,7 @@ tarball_version=
# The date when this release was created # The date when this release was created
date="Apr 02, 2017" date="Apr 12, 2017"
# The shared library version of each of PMIx's public libraries. # The shared library version of each of PMIx's public libraries.
# These versions are maintained in accordance with the "Library # These versions are maintained in accordance with the "Library

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

@ -952,7 +952,7 @@ AC_MSG_RESULT([$with_ident_string])
AC_MSG_CHECKING([if want developer-level timing support]) AC_MSG_CHECKING([if want developer-level timing support])
AC_ARG_ENABLE(pmix-timing, AC_ARG_ENABLE(pmix-timing,
AC_HELP_STRING([--enable-pmix-timing], AC_HELP_STRING([--enable-pmix-timing],
[enable developer-level timing code (default: disabled)])) [enable PMIx developer-level timing code (default: disabled)]))
if test "$enable_pmix_timing" = "yes"; then if test "$enable_pmix_timing" = "yes"; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
WANT_PMIX_TIMING=1 WANT_PMIX_TIMING=1
@ -979,6 +979,21 @@ else
WANT_INSTALL_HEADERS=0 WANT_INSTALL_HEADERS=0
fi fi
#
# Install backward compatibility support for PMI-1 and PMI-2
#
AC_MSG_CHECKING([if want backward compatibility for PMI-1 and PMI-2])
AC_ARG_ENABLE(pmix-backward-compatibility,
AC_HELP_STRING([--enable-pmix-backward-compatibility],
[enable PMIx support for PMI-1 and PMI-2 (default: enabled)]))
if test "$enable_pmix_backward_compatibility" = "no"; then
AC_MSG_RESULT([no])
WANT_PMIX_BACKWARD=0
else
AC_MSG_RESULT([yes])
WANT_PMIX_BACKWARD=1
fi
AM_CONDITIONAL([WANT_INSTALL_HEADERS], [test $WANT_INSTALL_HEADERS -eq 1]) AM_CONDITIONAL([WANT_INSTALL_HEADERS], [test $WANT_INSTALL_HEADERS -eq 1])
])dnl ])dnl
@ -994,6 +1009,7 @@ AC_DEFUN([PMIX_DO_AM_CONDITIONALS],[
AM_CONDITIONAL([WANT_DSTORE], [test "x$enable_dstore" != "xno"]) AM_CONDITIONAL([WANT_DSTORE], [test "x$enable_dstore" != "xno"])
AM_CONDITIONAL([WANT_PRIMARY_HEADERS], [test "x$pmix_install_primary_headers" = "xyes"]) AM_CONDITIONAL([WANT_PRIMARY_HEADERS], [test "x$pmix_install_primary_headers" = "xyes"])
AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1) AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1)
AM_CONDITIONAL(WANT_PMIX_BACKWARD, test "$WANT_PMIX_BACKWARD" = 1)
]) ])
pmix_did_am_conditionals=yes pmix_did_am_conditionals=yes
])dnl ])dnl

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

@ -13,7 +13,7 @@
* All rights reserved. * All rights reserved.
* Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2009-2012 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved.
* Copyright (c) 2013-2016 Intel, Inc. All rights reserved. * Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
* Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
* *
@ -430,7 +430,6 @@ static void infocbfunc(pmix_status_t status,
static int attach_to_running_job(char *nspace) static int attach_to_running_job(char *nspace)
{ {
pmix_status_t rc; pmix_status_t rc;
pmix_proc_t myproc;
pmix_query_t *query; pmix_query_t *query;
size_t nq; size_t nq;
mydbug_query_t *q; mydbug_query_t *q;

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

@ -15,10 +15,14 @@ include_HEADERS = \
pmix.h \ pmix.h \
pmix_common.h \ pmix_common.h \
pmix_server.h \ pmix_server.h \
pmi.h \
pmi2.h \
pmix_tool.h pmix_tool.h
if WANT_PMIX_BACKWARD
include_HEADERS += \
pmi.h \
pmi2.h
endif
nodist_include_HEADERS = \ nodist_include_HEADERS = \
pmix_version.h \ pmix_version.h \
pmix_rename.h pmix_rename.h

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

@ -1,6 +1,6 @@
# -*- makefile -*- # -*- makefile -*-
# #
# Copyright (c) 2014-2015 Intel, Inc. All rights reserved. # Copyright (c) 2014-2017 Intel, Inc. All rights reserved.
# Copyright (c) 2014 Artem Y. Polyakov <artpol84@gmail.com>. # Copyright (c) 2014 Artem Y. Polyakov <artpol84@gmail.com>.
# All rights reserved. # All rights reserved.
# Copyright (c) 2016 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
@ -22,7 +22,7 @@ sources += \
client/pmix_client_spawn.c \ client/pmix_client_spawn.c \
client/pmix_client_connect.c client/pmix_client_connect.c
if !PMIX_EMBEDDED_MODE if WANT_PMIX_BACKWARD
sources += \ sources += \
client/pmi1.c \ client/pmi1.c \
client/pmi2.c client/pmi2.c

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

@ -633,8 +633,8 @@ static void _getnbfn(int fd, short flags, void *cbdata)
rc = pmix_hash_fetch(&nptr->modex, pmix_globals.myid.rank, cb->key, &val); rc = pmix_hash_fetch(&nptr->modex, pmix_globals.myid.rank, cb->key, &val);
if( PMIX_SUCCESS != rc ){ if( PMIX_SUCCESS != rc ){
rc = PMIX_ERR_NOT_FOUND; rc = PMIX_ERR_NOT_FOUND;
goto respond;
} }
goto respond;
} }
/* otherwise, the data must be something they "put" */ /* otherwise, the data must be something they "put" */

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

@ -202,7 +202,7 @@ static void progress_local_event_hdlr(pmix_status_t status,
* as this indicates that info struct should be removed */ * as this indicates that info struct should be removed */
nsave = 0; nsave = 0;
for (n=0; n < chain->nresults; n++) { for (n=0; n < chain->nresults; n++) {
if (NULL != chain->results[n].key) { if (0 < strlen(chain->results[n].key)) {
++nsave; ++nsave;
} }
} }
@ -217,7 +217,7 @@ static void progress_local_event_hdlr(pmix_status_t status,
/* transfer over the prior data */ /* transfer over the prior data */
cnt = 0; cnt = 0;
for (n=0; n < chain->nresults; n++) { for (n=0; n < chain->nresults; n++) {
if (NULL != chain->results[n].key) { if (0 < strlen(chain->results[n].key)) {
PMIX_INFO_XFER(&newinfo[cnt], &chain->results[n]); PMIX_INFO_XFER(&newinfo[cnt], &chain->results[n]);
++cnt; ++cnt;
} }

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

@ -641,10 +641,18 @@ static void reg_event_hdlr(int sd, short args, void *cbdata)
break; break;
} }
} }
/* if the handler wasn't found, then it may show up later - so /* if the handler wasn't found, then we return an error. At some
* for now just prepend it to the list */ * future time, we may change this behavior and cache this handler
* until the reference one has been registered. However, this could
* turn out to be a laborious search procedure as the reference
* event handler may in turn be dependent on another handler, etc. */
if (!found) { if (!found) {
pmix_list_prepend(cd->list, &evhdlr->super); /* this is an error */
--pmix_globals.events.nhdlrs;
rc = PMIX_ERR_EVENT_REGISTRATION;
index = UINT_MAX;
PMIX_RELEASE(evhdlr);
goto ack;
} }
} }
if (PMIX_ERR_WOULD_BLOCK == rc) { if (PMIX_ERR_WOULD_BLOCK == rc) {
@ -710,57 +718,54 @@ static void dereg_event_hdlr(int sd, short args, void *cbdata)
} }
/* check the first and last locations */ /* check the first and last locations */
if (NULL != pmix_globals.events.first || if ((NULL != pmix_globals.events.first && pmix_globals.events.first->index == cd->ref) ||
NULL != pmix_globals.events.last) { (NULL != pmix_globals.events.last && pmix_globals.events.last->index == cd->ref)) {
if (pmix_globals.events.first->index == cd->ref || /* found it */
pmix_globals.events.last->index == cd->ref) { if (NULL != pmix_globals.events.first && pmix_globals.events.first->index == cd->ref) {
/* found it */ ev = pmix_globals.events.first;
if (pmix_globals.events.first->index == cd->ref) { } else {
ev = pmix_globals.events.first; ev = pmix_globals.events.last;
} else { }
ev = pmix_globals.events.last; if (NULL != msg) {
} /* if this is a default handler, see if any other default
if (NULL != msg) { * handlers remain */
/* if this is a default handler, see if any other default if (NULL == ev->codes) {
* handlers remain */ if (0 == pmix_list_get_size(&pmix_globals.events.default_events)) {
if (NULL == ev->codes) { /* tell the server to dereg our default handler */
if (0 == pmix_list_get_size(&pmix_globals.events.default_events)) { if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &wildcard, 1, PMIX_STATUS))) {
/* tell the server to dereg our default handler */ PMIX_RELEASE(msg);
if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &wildcard, 1, PMIX_STATUS))) { goto cleanup;
PMIX_RELEASE(msg);
goto cleanup;
}
} }
} else { }
for (n=0; n < ev->ncodes; n++) { } else {
/* see if this is the last registration we have for this code */ for (n=0; n < ev->ncodes; n++) {
PMIX_LIST_FOREACH(active, &pmix_globals.events.actives, pmix_active_code_t) { /* see if this is the last registration we have for this code */
if (active->code == ev->codes[n]) { PMIX_LIST_FOREACH(active, &pmix_globals.events.actives, pmix_active_code_t) {
--active->nregs; if (active->code == ev->codes[n]) {
if (0 == active->nregs) { --active->nregs;
pmix_list_remove_item(&pmix_globals.events.actives, &active->super); if (0 == active->nregs) {
/* tell the server to dereg this code */ pmix_list_remove_item(&pmix_globals.events.actives, &active->super);
if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) { /* tell the server to dereg this code */
PMIX_RELEASE(active); if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) {
PMIX_RELEASE(msg);
goto cleanup;
}
PMIX_RELEASE(active); PMIX_RELEASE(active);
PMIX_RELEASE(msg);
goto cleanup;
} }
break; PMIX_RELEASE(active);
} }
break;
} }
} }
} }
} }
if (pmix_globals.events.first->index == cd->ref) {
pmix_globals.events.first = NULL;
} else {
pmix_globals.events.last = NULL;
}
PMIX_RELEASE(ev);
goto cleanup;
} }
if (ev == pmix_globals.events.first) {
pmix_globals.events.first = NULL;
} else {
pmix_globals.events.last = NULL;
}
PMIX_RELEASE(ev);
goto cleanup;
} }
/* the registration can be in any of three places, so check each of them */ /* the registration can be in any of three places, so check each of them */
@ -793,11 +798,13 @@ static void dereg_event_hdlr(int sd, short args, void *cbdata)
--active->nregs; --active->nregs;
if (0 == active->nregs) { if (0 == active->nregs) {
pmix_list_remove_item(&pmix_globals.events.actives, &active->super); pmix_list_remove_item(&pmix_globals.events.actives, &active->super);
/* tell the server to dereg this code */ if (NULL != msg) {
if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) { /* tell the server to dereg this code */
PMIX_RELEASE(active); if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) {
PMIX_RELEASE(msg); PMIX_RELEASE(active);
goto cleanup; PMIX_RELEASE(msg);
goto cleanup;
}
} }
PMIX_RELEASE(active); PMIX_RELEASE(active);
} }
@ -820,11 +827,13 @@ static void dereg_event_hdlr(int sd, short args, void *cbdata)
--active->nregs; --active->nregs;
if (0 == active->nregs) { if (0 == active->nregs) {
pmix_list_remove_item(&pmix_globals.events.actives, &active->super); pmix_list_remove_item(&pmix_globals.events.actives, &active->super);
/* tell the server to dereg this code */ if (NULL != msg) {
if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) { /* tell the server to dereg this code */
PMIX_RELEASE(active); if (PMIX_SUCCESS != (rc = pmix_bfrop.pack(msg, &active->code, 1, PMIX_STATUS))) {
PMIX_RELEASE(msg); PMIX_RELEASE(active);
goto cleanup; PMIX_RELEASE(msg);
goto cleanup;
}
} }
PMIX_RELEASE(active); PMIX_RELEASE(active);
} }

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

@ -31,8 +31,8 @@
BEGIN_C_DECLS BEGIN_C_DECLS
/* define a limit of 128k for raw strings */ /* define a limit for storing raw strings */
#define PMIX_STRING_LIMIT 131072 #define PMIX_STRING_LIMIT 512
/* define a macro for quickly checking if a string exceeds the /* define a macro for quickly checking if a string exceeds the
* compression limit */ * compression limit */

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

@ -11,7 +11,7 @@
# All rights reserved. # All rights reserved.
# Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved. # Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved. # Copyright (c) 2012-2013 Los Alamos National Security, Inc. All rights reserved.
# Copyright (c) 2013-2016 Intel, Inc. All rights reserved # Copyright (c) 2013-2017 Intel, Inc. All rights reserved.
# $COPYRIGHT$ # $COPYRIGHT$
# #
# Additional copyrights may follow # Additional copyrights may follow
@ -32,7 +32,12 @@ headers = test_common.h cli_stages.h server_callbacks.h utils.h test_fence.h \
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_builddir)/src/include -I$(top_builddir)/src/api AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_builddir)/src/include -I$(top_builddir)/src/api
noinst_SCRIPTS = pmix_client_otheruser.sh noinst_SCRIPTS = pmix_client_otheruser.sh
noinst_PROGRAMS = pmi_client pmi2_client noinst_PROGRAMS =
if WANT_PMIX_BACKWARD
noinst_PROGRAMS += pmi_client pmi2_client
endif
if !WANT_HIDDEN if !WANT_HIDDEN
noinst_PROGRAMS += pmix_test pmix_client pmix_regex noinst_PROGRAMS += pmix_test pmix_client pmix_regex
endif endif
@ -43,6 +48,7 @@ pmix_test_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
pmix_test_LDADD = \ pmix_test_LDADD = \
$(top_builddir)/src/libpmix.la $(top_builddir)/src/libpmix.la
if WANT_PMIX_BACKWARD
pmi_client_SOURCES = $(headers) \ pmi_client_SOURCES = $(headers) \
pmi_client.c pmi_client.c
pmi_client_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) pmi_client_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
@ -54,6 +60,7 @@ pmi2_client_SOURCES = $(headers) \
pmi2_client_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS) pmi2_client_LDFLAGS = $(PMIX_PKG_CONFIG_LDFLAGS)
pmi2_client_LDADD = \ pmi2_client_LDADD = \
$(top_builddir)/src/libpmix.la $(top_builddir)/src/libpmix.la
endif
pmix_client_SOURCES = $(headers) \ pmix_client_SOURCES = $(headers) \
pmix_client.c test_fence.c test_common.c test_publish.c test_spawn.c \ pmix_client.c test_fence.c test_common.c test_publish.c test_spawn.c \