diff --git a/.gitignore b/.gitignore index c5d58f2ff0..0449083c65 100644 --- a/.gitignore +++ b/.gitignore @@ -133,6 +133,7 @@ examples/debugger/stdincheck examples/debugger/mpihello examples/legacy examples/colocate +examples/pset src/sys/powerpc/atomic-32.s src/sys/powerpc/atomic-64.s diff --git a/examples/Makefile b/examples/Makefile index 5a0b94d488..705577fd59 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -59,7 +59,8 @@ EXAMPLES = \ launcher \ showkeys \ legacy \ - colocate + colocate \ + pset all: $(EXAMPLES) diff --git a/examples/Makefile.include b/examples/Makefile.include index b687bbb35a..62ad75a09d 100644 --- a/examples/Makefile.include +++ b/examples/Makefile.include @@ -67,4 +67,5 @@ EXTRA_DIST += \ examples/showkeys.c \ examples/target.c \ examples/tool.c \ - examples/colocate.c + examples/colocate.c \ + examples/pset.c diff --git a/examples/debugger/direct-multi.c b/examples/debugger/direct-multi.c index ba130a9c0e..9db400f2f3 100644 --- a/examples/debugger/direct-multi.c +++ b/examples/debugger/direct-multi.c @@ -15,7 +15,7 @@ * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. - * Copyright (c) 2021 Nanook Consulting All rights reserved. + * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -305,9 +305,8 @@ int parse_command_line(int argc, char **argv) printf("$ prte --daemonize\n"); printf("$ %s [OPTIONS]\n", argv[0]); printf("\n"); - printf(" --stop-in-init Stop application in init (Default)\n"); + printf(" --stop-in-init Stop application in PMIx_Init (Default)\n"); printf(" --stop-on-exec Stop application on exec\n"); - printf(" --stop-in-init Stop application in init (Default)\n"); printf(" --app-npernode Number of processes per node (Default: 2)\n"); printf(" --app-np Number of total processes. Must be multiple of " "--app-npernode (Default: 2)\n"); @@ -559,11 +558,9 @@ static pmix_status_t spawn_app(void) /* Provide job-level directives so the apps do what the user requested */ PMIX_INFO_LIST_START(tinfo); if (stop_on_exec) { - PMIX_INFO_LIST_ADD(rc, tinfo, PMIX_DEBUG_STOP_ON_EXEC, &all_ranks, - PMIX_PROC_RANK); // All procs stop at first instruction + PMIX_INFO_LIST_ADD(rc, tinfo, PMIX_DEBUG_STOP_ON_EXEC, NULL, PMIX_BOOL); // All procs stop at first instruction } else { - PMIX_INFO_LIST_ADD(rc, tinfo, PMIX_DEBUG_STOP_IN_INIT, &all_ranks, - PMIX_PROC_RANK); // All procs stop in PMIx_Init + PMIX_INFO_LIST_ADD(rc, tinfo, PMIX_DEBUG_STOP_IN_INIT, NULL, PMIX_BOOL); // All procs stop in PMIx_Init } sprintf(map_str, "ppr:%d:node", app_npernode); PMIX_INFO_LIST_ADD(rc, tinfo, PMIX_MAPBY, map_str, PMIX_STRING); // app procs/node diff --git a/examples/debugger/direct.c b/examples/debugger/direct.c index 1311c379cc..391b4afe69 100644 --- a/examples/debugger/direct.c +++ b/examples/debugger/direct.c @@ -15,7 +15,7 @@ * Copyright (c) 2011 Oak Ridge National Labs. All rights reserved. * Copyright (c) 2013-2020 Intel, Inc. All rights reserved. * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. - * Copyright (c) 2021 Nanook Consulting All rights reserved. + * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. * Copyright (c) 2021 IBM Corporation. All rights reserved. * $COPYRIGHT$ * @@ -370,12 +370,10 @@ static int cospawn_launch(myrel_t *myrel) n = 0; if (stop_on_exec) { /* Stop application at first instruction */ - PMIX_INFO_LOAD(&app[n].info[0], PMIX_DEBUG_STOP_ON_EXEC, &all_ranks, - PMIX_PROC_RANK); + PMIX_INFO_LOAD(&app[n].info[0], PMIX_DEBUG_STOP_ON_EXEC, NULL, PMIX_BOOL); } else if (stop_in_init) { /* Stop application in PMIx_Init */ - PMIX_INFO_LOAD(&app[n].info[0], PMIX_DEBUG_STOP_IN_INIT, &all_ranks, - PMIX_PROC_RANK); + PMIX_INFO_LOAD(&app[n].info[0], PMIX_DEBUG_STOP_IN_INIT, NULL, PMIX_BOOL); } } else { app[0].ninfo = 0; @@ -583,9 +581,8 @@ int main(int argc, char **argv) printf("$ %s [OPTIONS]\n", argv[0]); printf("\n"); printf(" -c | --cospawn Test Cospawn\n"); - printf(" --stop-in-init Stop application in init (Default)\n"); + printf(" --stop-in-init Stop application in PMIx_Init (Default)\n"); printf(" --stop-on-exec Stop application on exec\n"); - printf(" --stop-in-init Stop application in init (Default)\n"); printf(" --app-npernode Number of processes per node (Default: 2)\n"); printf(" --app-np Number of total processes. Must be multiple of " "--app-npernode (Default: 2)\n"); @@ -816,12 +813,10 @@ int main(int argc, char **argv) PMIX_INFO_LIST_START(dirs); if (stop_on_exec) { // procs are to stop on first instruction - PMIX_INFO_LIST_ADD(rc, dirs, PMIX_DEBUG_STOP_ON_EXEC, &all_ranks, - PMIX_PROC_RANK); + PMIX_INFO_LIST_ADD(rc, dirs, PMIX_DEBUG_STOP_ON_EXEC, NULL, PMIX_BOOL); } else { // procs are to pause in PMIx_Init for debugger attach - PMIX_INFO_LIST_ADD(rc, dirs, PMIX_DEBUG_STOP_IN_INIT, &all_ranks, - PMIX_PROC_RANK); + PMIX_INFO_LIST_ADD(rc, dirs, PMIX_DEBUG_STOP_IN_INIT, NULL, PMIX_BOOL); } sprintf(map_str, "ppr:%d:node", app_npernode); PMIX_INFO_LIST_ADD(rc, dirs, PMIX_MAPBY, map_str, PMIX_STRING); // 1 per node diff --git a/examples/debugger/indirect-multi.c b/examples/debugger/indirect-multi.c index 1411923547..4c37573d69 100644 --- a/examples/debugger/indirect-multi.c +++ b/examples/debugger/indirect-multi.c @@ -300,7 +300,7 @@ static pmix_status_t spawn_app(char *myuri, int argc, char **argv, * to do with the app it is going to spawn for us */ PMIX_INFO_LIST_START(linfo); rank = PMIX_RANK_WILDCARD; - PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_INIT, &rank, PMIX_PROC_RANK); // stop all procs in init + PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_INIT, NULL, PMIX_BOOL); // stop all procs in PMIx_Init PMIX_INFO_LIST_ADD(rc, linfo, PMIX_NOTIFY_JOB_EVENTS, NULL, PMIX_BOOL); PMIX_INFO_LIST_ADD(rc, linfo, PMIX_FWD_STDOUT, NULL, PMIX_BOOL); // forward stdout to me PMIX_INFO_LIST_ADD(rc, linfo, PMIX_FWD_STDERR, NULL, PMIX_BOOL); // forward stderr to me diff --git a/examples/debugger/indirect.c b/examples/debugger/indirect.c index c3b6d89ca7..79bc8b3c48 100644 --- a/examples/debugger/indirect.c +++ b/examples/debugger/indirect.c @@ -277,9 +277,9 @@ int main(int argc, char **argv) PMIX_INFO_LIST_START(linfo); rank = PMIX_RANK_WILDCARD; if (NULL != strstr(argv[1], "mpi")) { - PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_APP, &rank, PMIX_PROC_RANK); // stop all procs in MPI_Init + PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_APP, NULL, PMIX_BOOL); // stop all procs in MPI_Init } else { - PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_INIT, &rank, PMIX_PROC_RANK); // stop all procs in PMIx_Init + PMIX_INFO_LIST_ADD(rc, linfo, PMIX_DEBUG_STOP_IN_INIT, NULL, PMIX_BOOL); // stop all procs in PMIx_Init } PMIX_INFO_LIST_ADD(rc, linfo, PMIX_NOTIFY_JOB_EVENTS, NULL, PMIX_BOOL); PMIX_INFO_LIST_ADD(rc, linfo, PMIX_FWD_STDOUT, NULL, PMIX_BOOL); // forward stdout to me diff --git a/examples/pset.c b/examples/pset.c new file mode 100644 index 0000000000..ea9c35fcc6 --- /dev/null +++ b/examples/pset.c @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana + * University Research and Technology + * Corporation. All rights reserved. + * Copyright (c) 2004-2011 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, + * University of Stuttgart. All rights reserved. + * Copyright (c) 2004-2005 The Regents of the University of California. + * All rights reserved. + * Copyright (c) 2006-2013 Los Alamos National Security, LLC. + * 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) 2013-2018 Intel, Inc. All rights reserved. + * Copyright (c) 2015 Mellanox Technologies, Inc. All rights reserved. + * Copyright (c) 2021-2022 Nanook Consulting. All rights reserved. + * $COPYRIGHT$ + * + * Additional copyrights may follow + * + * $HEADER$ + * + */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include + +#include + +int main(int argc, char **argv) +{ + int rc; + size_t n; + pmix_value_t value; + pmix_value_t *val = &value; + pmix_proc_t proc, *pptr; + pid_t pid; + pmix_proc_t myproc; + + pid = getpid(); + + if (PMIX_SUCCESS != (rc = PMIx_Init(&myproc, NULL, 0))) { + fprintf(stderr, "Client ns %s rank %d: PMIx_Init failed: %d\n", myproc.nspace, myproc.rank, + rc); + exit(0); + } + fprintf(stderr, "Client ns %s rank %d pid %lu: Running\n", myproc.nspace, myproc.rank, + (unsigned long) pid); + + /* get our pset name */ + PMIX_LOAD_PROCID(&proc, myproc.nspace, PMIX_RANK_WILDCARD); + if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_PSET_NAME, NULL, 0, &val))) { + fprintf(stderr, "Client ns %s rank %d: PMIx_Get pset name failed: %s\n", + myproc.nspace, myproc.rank, PMIx_Error_string(rc)); + goto done; + } + fprintf(stderr, "Client %s:%d pset name %s\n", + myproc.nspace, myproc.rank, val->data.string); + PMIX_VALUE_FREE(val, 1); + + /* since this is our pset, get our membership */ + if (PMIX_SUCCESS != (rc = PMIx_Get(&proc, PMIX_PSET_MEMBERS, NULL, 0, &val))) { + fprintf(stderr, "Client ns %s rank %d: PMIx_Get of pset members failed: %s\n", + myproc.nspace, myproc.rank, PMIx_Error_string(rc)); + goto done; + } + /* must return a pmix_data_array_t of members */ + if (PMIX_DATA_ARRAY != val->type) { + fprintf(stderr, "Client ns %s rank %d: PMIx_Get of pset members returned incorrect data type: %s\n", + myproc.nspace, myproc.rank, PMIx_Data_type_string(val->type)); + goto done; + } + fprintf(stderr, "Client %s:%d PMIx_Get returned %d members\n", myproc.nspace, myproc.rank, + val->data.darray->size); + pptr = (pmix_proc_t*)val->data.darray->array; + for (n=0; n < val->data.darray->size; n++) { + fprintf(stderr, "\t%s:%d\n", pptr[n].nspace, pptr[n].rank); + } + PMIX_VALUE_FREE(val, 1); + +done: + return (rc); +} diff --git a/src/mca/errmgr/dvm/errmgr_dvm.c b/src/mca/errmgr/dvm/errmgr_dvm.c index 5d9b7395eb..a69a06198a 100644 --- a/src/mca/errmgr/dvm/errmgr_dvm.c +++ b/src/mca/errmgr/dvm/errmgr_dvm.c @@ -224,7 +224,7 @@ static void proc_errors(int fd, short args, void *cbdata) prte_state_caddy_t *caddy = (prte_state_caddy_t *) cbdata; prte_job_t *jdata; prte_proc_t *pptr, *proct; - pmix_proc_t *proc = &caddy->name, parent; + pmix_proc_t *proc = &caddy->name; prte_proc_state_t state = caddy->proc_state; int i; int32_t i32, *i32ptr; @@ -580,10 +580,8 @@ static void check_send_notification(prte_job_t *jdata, pmix_proc_t target; pmix_data_buffer_t pbkt; pmix_data_range_t range = PMIX_RANGE_CUSTOM; - pmix_status_t cret; - // pmix_output_verbose(5, prte_state_base_framework.framework_output, - pmix_output(0, + pmix_output_verbose(5, prte_state_base_framework.framework_output, "%s errmgr:dvm:sending notification %s affected proc %s", PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), PMIx_Error_string(event), @@ -591,7 +589,6 @@ static void check_send_notification(prte_job_t *jdata, if (!prte_get_attribute(&jdata->attributes, PRTE_JOB_NOTIFY_ERRORS, NULL, PMIX_BOOL) || prte_dvm_abort_ordered) { - pmix_output(0, "NOT NOTIFYING"); return; } /* we checked for termination due to the specific error we encountered, but @@ -601,7 +598,6 @@ static void check_send_notification(prte_job_t *jdata, if (PRTE_FLAG_TEST(jdata, PRTE_JOB_FLAG_ABORTED)) { /* this job has already been aborted, so we don't need to notify * about the fate of any proc within it */ - pmix_output(0, "JOB ABORTED"); return; } /* notify the other procs of the termination */ diff --git a/src/mca/ess/base/ess_base_std_prted.c b/src/mca/ess/base/ess_base_std_prted.c index 66fe601548..b4b8b43253 100644 --- a/src/mca/ess/base/ess_base_std_prted.c +++ b/src/mca/ess/base/ess_base_std_prted.c @@ -103,7 +103,6 @@ int prte_ess_base_prted_setup(void) prte_job_t *jdata; prte_proc_t *proc; prte_app_context_t *app; - char *param; hwloc_obj_t obj; unsigned i, j; prte_topology_t *t; diff --git a/src/mca/ess/env/ess_env_module.c b/src/mca/ess/env/ess_env_module.c index 1c5037da9c..e6f2d2a61d 100644 --- a/src/mca/ess/env/ess_env_module.c +++ b/src/mca/ess/env/ess_env_module.c @@ -81,6 +81,7 @@ static int rte_init(int argc, char **argv) { int ret; char *error = NULL; + PRTE_HIDE_UNUSED_PARAMS(argc, argv); /* run the prolog */ if (PRTE_SUCCESS != (ret = prte_ess_base_std_prolog())) { diff --git a/src/mca/ess/hnp/ess_hnp_module.c b/src/mca/ess/hnp/ess_hnp_module.c index 941880461a..13887c3ee3 100644 --- a/src/mca/ess/hnp/ess_hnp_module.c +++ b/src/mca/ess/hnp/ess_hnp_module.c @@ -105,12 +105,11 @@ static int rte_init(int argc, char **argv) prte_node_t *node; prte_proc_t *proc; prte_app_context_t *app; - char *coprocessors, **sns; - uint32_t h; int idx; prte_topology_t *t; pmix_value_t pval; pmix_status_t pret; + PRTE_HIDE_UNUSED_PARAMS(argc); /* run the prolog */ if (PRTE_SUCCESS != (ret = prte_ess_base_std_prolog())) { @@ -536,6 +535,8 @@ static int rte_finalize(void) static void rte_abort(int status, bool report) { + PRTE_HIDE_UNUSED_PARAMS(report); + pmix_output(0, "ABORT"); /* do NOT do a normal finalize as this will very likely * hang the process. We are aborting due to an abnormal condition diff --git a/src/mca/ess/slurm/ess_slurm_module.c b/src/mca/ess/slurm/ess_slurm_module.c index ccdf00f768..aeffbb3d6f 100644 --- a/src/mca/ess/slurm/ess_slurm_module.c +++ b/src/mca/ess/slurm/ess_slurm_module.c @@ -61,6 +61,7 @@ static int rte_init(int argc, char **argv) { int ret; char *error = NULL; + PRTE_HIDE_UNUSED_PARAMS(argc, argv); /* run the prolog */ if (PRTE_SUCCESS != (ret = prte_ess_base_std_prolog())) { diff --git a/src/mca/filem/raw/filem_raw_module.c b/src/mca/filem/raw/filem_raw_module.c index 5ac13237a9..eab351f756 100644 --- a/src/mca/filem/raw/filem_raw_module.c +++ b/src/mca/filem/raw/filem_raw_module.c @@ -180,6 +180,7 @@ static void recv_ack(int status, pmix_proc_t *sender, pmix_data_buffer_t *buffer prte_filem_raw_xfer_t *xfer; char *file; int st, n, rc; + PRTE_HIDE_UNUSED_PARAMS(status, tag, cbdata); /* unpack the file */ n = 1; @@ -732,6 +733,7 @@ static void send_chunk(int xxx, short argc, void *cbdata) int rc; pmix_data_buffer_t chunk; prte_grpcomm_signature_t *sig; + PRTE_HIDE_UNUSED_PARAMS(xxx, argc); PMIX_ACQUIRE_OBJECT(rev); @@ -930,6 +932,7 @@ static void recv_files(int status, pmix_proc_t *sender, pmix_data_buffer_t *buff pmix_list_item_t *item; int32_t type; char *cptr; + PRTE_HIDE_UNUSED_PARAMS(status, sender, tag, cbdata); /* unpack the data */ n = 1; @@ -1086,6 +1089,7 @@ static void write_handler(int fd, short event, void *cbdata) char *dirname, *cmd; char homedir[MAXPATHLEN]; int rc; + PRTE_HIDE_UNUSED_PARAMS(fd, event); PMIX_ACQUIRE_OBJECT(sink); diff --git a/src/mca/grpcomm/base/base.h b/src/mca/grpcomm/base/base.h index bf97f466fc..b9c5925622 100644 --- a/src/mca/grpcomm/base/base.h +++ b/src/mca/grpcomm/base/base.h @@ -85,16 +85,9 @@ PRTE_EXPORT int prte_grpcomm_API_xcast(prte_grpcomm_signature_t *sig, prte_rml_t PRTE_EXPORT int prte_grpcomm_API_allgather(prte_grpcomm_signature_t *sig, pmix_data_buffer_t *buf, int mode, pmix_status_t local_status, prte_grpcomm_cbfunc_t cbfunc, void *cbdata); -/* reliable broadcast API */ -PRTE_EXPORT int prte_grpcomm_API_rbcast(prte_grpcomm_signature_t *sig, prte_rml_tag_t tag, - pmix_data_buffer_t *buf); -PRTE_EXPORT int prte_grpcomm_API_register_cb(prte_grpcomm_rbcast_cb_t callback); PRTE_EXPORT prte_grpcomm_coll_t *prte_grpcomm_base_get_tracker(prte_grpcomm_signature_t *sig, bool create); -PRTE_EXPORT void prte_grpcomm_base_mark_distance_recv(prte_grpcomm_coll_t *coll, uint32_t distance); -PRTE_EXPORT unsigned int prte_grpcomm_base_check_distance_recv(prte_grpcomm_coll_t *coll, - uint32_t distance); END_C_DECLS #endif diff --git a/src/mca/grpcomm/base/grpcomm_base_frame.c b/src/mca/grpcomm/base/grpcomm_base_frame.c index 06d8ec4b88..a6b69e02db 100644 --- a/src/mca/grpcomm/base/grpcomm_base_frame.c +++ b/src/mca/grpcomm/base/grpcomm_base_frame.c @@ -56,10 +56,7 @@ prte_grpcomm_base_t prte_grpcomm_base = { prte_grpcomm_API_module_t prte_grpcomm = { .xcast = prte_grpcomm_API_xcast, - .allgather = prte_grpcomm_API_allgather, - .rbcast = prte_grpcomm_API_rbcast, - .register_cb = prte_grpcomm_API_register_cb, - .unregister_cb = NULL + .allgather = prte_grpcomm_API_allgather }; static int base_register(pmix_mca_base_register_flag_t flags) @@ -143,7 +140,6 @@ static void ccon(prte_grpcomm_coll_t *p) p->sig = NULL; p->status = PMIX_SUCCESS; PMIX_DATA_BUFFER_CONSTRUCT(&p->bucket); - PMIX_CONSTRUCT(&p->distance_mask_recv, pmix_bitmap_t); p->dmns = NULL; p->ndmns = 0; p->nexpected = 0; @@ -158,7 +154,6 @@ static void cdes(prte_grpcomm_coll_t *p) PMIX_RELEASE(p->sig); } PMIX_DATA_BUFFER_DESTRUCT(&p->bucket); - PMIX_DESTRUCT(&p->distance_mask_recv); free(p->dmns); free(p->buffers); } diff --git a/src/mca/grpcomm/base/grpcomm_base_stubs.c b/src/mca/grpcomm/base/grpcomm_base_stubs.c index f2bfc9b036..646c69dcef 100644 --- a/src/mca/grpcomm/base/grpcomm_base_stubs.c +++ b/src/mca/grpcomm/base/grpcomm_base_stubs.c @@ -128,59 +128,6 @@ int prte_grpcomm_API_xcast(prte_grpcomm_signature_t *sig, prte_rml_tag_t tag, return rc; } -int prte_grpcomm_API_rbcast(prte_grpcomm_signature_t *sig, prte_rml_tag_t tag, - pmix_data_buffer_t *msg) -{ - int rc = PRTE_ERROR; - pmix_data_buffer_t *buf; - prte_grpcomm_base_active_t *active; - - PMIX_OUTPUT_VERBOSE((1, prte_grpcomm_base_framework.framework_output, - "%s grpcomm:base:rbcast sending %u bytes to tag %ld", - PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), - (NULL == msg) ? 0 : (unsigned int) msg->bytes_used, (long) tag)); - - /* this function does not access any framework-global data, and - * so it does not require us to push it into the event library */ - - /* prep the output buffer */ - PMIX_DATA_BUFFER_CREATE(buf); - - /* setup the payload */ - if (PRTE_SUCCESS != (rc = pack_xcast(sig, buf, msg, tag))) { - PRTE_ERROR_LOG(rc); - PMIX_RELEASE(buf); - return rc; - } - /* cycle thru the actives and see who can send it */ - PMIX_LIST_FOREACH(active, &prte_grpcomm_base.actives, prte_grpcomm_base_active_t) - { - if (NULL != active->module->rbcast) { - if (PRTE_SUCCESS == (rc = active->module->rbcast(buf))) { - break; - } - } - } - - return rc; -} - -int prte_grpcomm_API_register_cb(prte_grpcomm_rbcast_cb_t callback) -{ - int rc = PRTE_ERROR; - prte_grpcomm_base_active_t *active; - - PMIX_LIST_FOREACH(active, &prte_grpcomm_base.actives, prte_grpcomm_base_active_t) - { - if (NULL != active->module->register_cb) { - if (PRTE_ERROR != (rc = active->module->register_cb(callback))) { - break; - } - } - } - return rc; -} - static void allgather_stub(int fd, short args, void *cbdata) { prte_grpcomm_caddy_t *cd = (prte_grpcomm_caddy_t *) cbdata; @@ -366,8 +313,8 @@ static int create_dmns(prte_grpcomm_signature_t *sig, pmix_rank_t **dmns, size_t /* if NULL == procs, or the target jobid is our own, * then all daemons are participating */ - if (NULL == sig->signature - || PMIX_CHECK_NSPACE(PRTE_PROC_MY_NAME->nspace, sig->signature[0].nspace)) { + if (NULL == sig->signature || + PMIX_CHECK_NSPACE(PRTE_PROC_MY_NAME->nspace, sig->signature[0].nspace)) { *ndmns = prte_process_info.num_daemons; *dmns = NULL; return PRTE_SUCCESS; @@ -431,9 +378,9 @@ static int create_dmns(prte_grpcomm_signature_t *sig, pmix_rank_t **dmns, size_t "%s sign: GETTING PROC OBJECT FOR %s", PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), PRTE_NAME_PRINT(&sig->signature[n]))); - if (NULL - == (proc = (prte_proc_t *) pmix_pointer_array_get_item(jdata->procs, - sig->signature[n].rank))) { + proc = (prte_proc_t *) pmix_pointer_array_get_item(jdata->procs, + sig->signature[n].rank); + if (NULL == proc) { PRTE_ERROR_LOG(PRTE_ERR_NOT_FOUND); rc = PRTE_ERR_NOT_FOUND; goto done; @@ -551,17 +498,5 @@ static int pack_xcast(prte_grpcomm_signature_t *sig, pmix_data_buffer_t *buffer, } PMIX_BYTE_OBJECT_DESTRUCT(&bo); - PMIX_OUTPUT_VERBOSE( - (1, prte_grpcomm_base_framework.framework_output, "MSG SIZE: %lu", buffer->bytes_used)); return PRTE_SUCCESS; } - -void prte_grpcomm_base_mark_distance_recv(prte_grpcomm_coll_t *coll, uint32_t distance) -{ - pmix_bitmap_set_bit(&coll->distance_mask_recv, distance); -} - -unsigned int prte_grpcomm_base_check_distance_recv(prte_grpcomm_coll_t *coll, uint32_t distance) -{ - return pmix_bitmap_is_set_bit(&coll->distance_mask_recv, distance); -} diff --git a/src/mca/grpcomm/direct/grpcomm_direct.c b/src/mca/grpcomm/direct/grpcomm_direct.c index fb9bcc701c..6f60194b85 100644 --- a/src/mca/grpcomm/direct/grpcomm_direct.c +++ b/src/mca/grpcomm/direct/grpcomm_direct.c @@ -49,10 +49,7 @@ prte_grpcomm_base_module_t prte_grpcomm_direct_module = { .init = init, .finalize = finalize, .xcast = xcast, - .allgather = allgather, - .rbcast = NULL, - .register_cb = NULL, - .unregister_cb = NULL + .allgather = allgather }; /* internal functions */ @@ -97,6 +94,7 @@ static void finalize(void) static int xcast(pmix_rank_t *vpids, size_t nprocs, pmix_data_buffer_t *buf) { int rc; + PRTE_HIDE_UNUSED_PARAMS(vpids, nprocs); /* send it to the HNP (could be myself) for relay */ PRTE_RML_SEND(rc, PRTE_PROC_MY_HNP->rank, buf, PRTE_RML_TAG_XCAST); @@ -182,6 +180,7 @@ static void allgather_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *reply; prte_grpcomm_coll_t *coll; pmix_status_t local_status; + PRTE_HIDE_UNUSED_PARAMS(status, tag, cbdata); PMIX_OUTPUT_VERBOSE((1, prte_grpcomm_base_framework.framework_output, "%s grpcomm:direct allgather recvd from %s", @@ -373,14 +372,14 @@ static void xcast_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *relay = NULL, *rly, *rlycopy; pmix_data_buffer_t datbuf, *data; bool compressed; - prte_job_t *jdata, *daemons; - prte_proc_t *rec; + prte_job_t *daemons; pmix_list_t coll; prte_grpcomm_signature_t sig; prte_rml_tag_t tag; pmix_byte_object_t bo, pbo; pmix_value_t val; pmix_proc_t dmn; + PRTE_HIDE_UNUSED_PARAMS(status, sender, tg, cbdata); PMIX_OUTPUT_VERBOSE((1, prte_grpcomm_base_framework.framework_output, "%s grpcomm:direct:xcast:recv: with %d bytes", @@ -613,6 +612,7 @@ static void barrier_release(int status, pmix_proc_t *sender, pmix_data_buffer_t int rc, ret, mode; prte_grpcomm_signature_t sig; prte_grpcomm_coll_t *coll; + PRTE_HIDE_UNUSED_PARAMS(status, sender, tag, cbdata); PMIX_OUTPUT_VERBOSE((5, prte_grpcomm_base_framework.framework_output, "%s grpcomm:direct: barrier release called with %d bytes", diff --git a/src/mca/iof/hnp/iof_hnp.c b/src/mca/iof/hnp/iof_hnp.c index 9439cef02e..622fd2d360 100644 --- a/src/mca/iof/hnp/iof_hnp.c +++ b/src/mca/iof/hnp/iof_hnp.c @@ -405,6 +405,7 @@ static void stdin_write_handler(int fd, short event, void *cbdata) pmix_list_item_t *item; prte_iof_write_output_t *output; int num_written, total_written = 0; + PRTE_HIDE_UNUSED_PARAMS(fd, event); PMIX_ACQUIRE_OBJECT(sink); diff --git a/src/mca/iof/hnp/iof_hnp_component.c b/src/mca/iof/hnp/iof_hnp_component.c index f605610a4b..241500c6cf 100644 --- a/src/mca/iof/hnp/iof_hnp_component.c +++ b/src/mca/iof/hnp/iof_hnp_component.c @@ -50,7 +50,7 @@ const char *prte_mca_iof_hnp_component_version_string = "PRTE hnp iof MCA component version " PRTE_VERSION; prte_mca_iof_hnp_component_t prte_mca_iof_hnp_component = { - { + .super = { PRTE_IOF_BASE_VERSION_2_0_0, .pmix_mca_component_name = "hnp", diff --git a/src/mca/iof/hnp/iof_hnp_read.c b/src/mca/iof/hnp/iof_hnp_read.c index 2aea2bb80d..ef8d0ea21d 100644 --- a/src/mca/iof/hnp/iof_hnp_read.c +++ b/src/mca/iof/hnp/iof_hnp_read.c @@ -73,6 +73,7 @@ void prte_iof_hnp_read_local_handler(int fd, short event, void *cbdata) prte_iof_deliver_t *p; pmix_iof_channel_t pchan; pmix_status_t prc; + PRTE_HIDE_UNUSED_PARAMS(event); PMIX_ACQUIRE_OBJECT(rev); diff --git a/src/mca/iof/hnp/iof_hnp_receive.c b/src/mca/iof/hnp/iof_hnp_receive.c index 32f949fcc5..fe01188bb8 100644 --- a/src/mca/iof/hnp/iof_hnp_receive.c +++ b/src/mca/iof/hnp/iof_hnp_receive.c @@ -76,6 +76,7 @@ void prte_iof_hnp_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *buff pmix_iof_channel_t pchan; prte_iof_deliver_t *p; pmix_status_t prc; + PRTE_HIDE_UNUSED_PARAMS(status, tag, cbdata); PMIX_OUTPUT_VERBOSE((1, prte_iof_base_framework.framework_output, "%s received IOF msg from proc %s", PRTE_NAME_PRINT(PRTE_PROC_MY_NAME), diff --git a/src/mca/iof/prted/iof_prted.c b/src/mca/iof/prted/iof_prted.c index 64ec303935..c11fbadd80 100644 --- a/src/mca/iof/prted/iof_prted.c +++ b/src/mca/iof/prted/iof_prted.c @@ -303,6 +303,7 @@ static void stdin_write_handler(int _fd, short event, void *cbdata) pmix_list_item_t *item; prte_iof_write_output_t *output; int num_written; + PRTE_HIDE_UNUSED_PARAMS(_fd, event); PMIX_ACQUIRE_OBJECT(sink); diff --git a/src/mca/iof/prted/iof_prted_component.c b/src/mca/iof/prted/iof_prted_component.c index dcdedb6c0e..9c13bd8989 100644 --- a/src/mca/iof/prted/iof_prted_component.c +++ b/src/mca/iof/prted/iof_prted_component.c @@ -46,7 +46,7 @@ const char *prte_mca_iof_prted_component_version_string = "PRTE prted iof MCA component version " PRTE_VERSION; prte_mca_iof_prted_component_t prte_mca_iof_prted_component = { - { + .super = { PRTE_IOF_BASE_VERSION_2_0_0, .pmix_mca_component_name = "prted", diff --git a/src/mca/iof/prted/iof_prted_read.c b/src/mca/iof/prted/iof_prted_read.c index 44fecf5461..8a5c23251b 100644 --- a/src/mca/iof/prted/iof_prted_read.c +++ b/src/mca/iof/prted/iof_prted_read.c @@ -68,6 +68,7 @@ void prte_iof_prted_read_handler(int fd, short event, void *cbdata) prte_iof_deliver_t *p; pmix_iof_channel_t pchan; pmix_status_t prc; + PRTE_HIDE_UNUSED_PARAMS(event); PMIX_ACQUIRE_OBJECT(rev); diff --git a/src/mca/iof/prted/iof_prted_receive.c b/src/mca/iof/prted/iof_prted_receive.c index 61b395cb9a..80c6d69077 100644 --- a/src/mca/iof/prted/iof_prted_receive.c +++ b/src/mca/iof/prted/iof_prted_receive.c @@ -90,6 +90,7 @@ void prte_iof_prted_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *bu pmix_proc_t target; prte_iof_proc_t *proct; int rc; + PRTE_HIDE_UNUSED_PARAMS(status, sender, tag, cbdata); /* see what stream generated this data */ count = 1; diff --git a/src/mca/odls/base/odls_base_default_fns.c b/src/mca/odls/base/odls_base_default_fns.c index de4edca2e9..8b0d6a4af3 100644 --- a/src/mca/odls/base/odls_base_default_fns.c +++ b/src/mca/odls/base/odls_base_default_fns.c @@ -1525,7 +1525,6 @@ void prte_odls_base_default_wait_local_proc(int fd, short sd, void *cbdata) prte_proc_state_t state = PRTE_PROC_STATE_WAITPID_FIRED; prte_proc_t *cptr; bool flag = false; - bool *fptr = &flag; PRTE_HIDE_UNUSED_PARAMS(fd, sd); pmix_output_verbose(5, prte_odls_base_framework.framework_output, diff --git a/src/mca/odls/default/odls_default_module.c b/src/mca/odls/default/odls_default_module.c index a4400d2225..d9679747f6 100644 --- a/src/mca/odls/default/odls_default_module.c +++ b/src/mca/odls/default/odls_default_module.c @@ -391,17 +391,13 @@ static void do_child(prte_odls_spawn_caddy_t *cd, int write_fd) #if PRTE_HAVE_STOP_ON_EXEC { - pmix_rank_t tgt, *tptr; - tptr = &tgt; - if (prte_get_attribute(&cd->jdata->attributes, PRTE_JOB_STOP_ON_EXEC, (void**)&tptr, PMIX_PROC_RANK)) { - if (PMIX_CHECK_RANK(cd->child->name.rank, tgt)) { - errno = 0; - i = ptrace(PRTE_TRACEME, 0, 0, 0); - if (0 != errno) { - send_error_show_help(write_fd, 1, "help-prun.txt", "prun:stop-on-exec", "prted", - strerror(errno), prte_process_info.nodename, - (NULL == cd->child) ? 0 : cd->child->app_rank); - } + if (prte_get_attribute(&cd->jdata->attributes, PRTE_JOB_STOP_ON_EXEC, NULL, PMIX_BOOL)) { + errno = 0; + i = ptrace(PRTE_TRACEME, 0, 0, 0); + if (0 != errno) { + send_error_show_help(write_fd, 1, "help-prun.txt", "prun:stop-on-exec", "prted", + strerror(errno), prte_process_info.nodename, + (NULL == cd->child) ? 0 : cd->child->app_rank); } } } @@ -439,11 +435,18 @@ static int do_parent(prte_odls_spawn_caddy_t *cd, int read_fd) #if PRTE_HAVE_STOP_ON_EXEC if (NULL != cd->child) { - pmix_rank_t tgt, *tptr; - tptr = &tgt; - if (prte_get_attribute(&cd->jdata->attributes, PRTE_JOB_STOP_ON_EXEC, (void**)&tptr, PMIX_PROC_RANK)) { - if (PMIX_CHECK_RANK(cd->child->name.rank, tgt)) { - rc = waitpid(cd->child->pid, &status, WUNTRACED); + if (prte_get_attribute(&cd->jdata->attributes, PRTE_JOB_STOP_ON_EXEC, NULL, PMIX_BOOL)) { + rc = waitpid(cd->child->pid, &status, WUNTRACED); + if (-1 == rc) { + /* doomed */ + cd->child->state = PRTE_PROC_STATE_FAILED_TO_START; + PRTE_FLAG_UNSET(cd->child, PRTE_PROC_FLAG_ALIVE); + close(read_fd); + return PRTE_ERR_FAILED_TO_START; + } + /* tell the child to stop */ + if (WIFSTOPPED(status)) { + rc = kill(cd->child->pid, SIGSTOP); if (-1 == rc) { /* doomed */ cd->child->state = PRTE_PROC_STATE_FAILED_TO_START; @@ -451,32 +454,21 @@ static int do_parent(prte_odls_spawn_caddy_t *cd, int read_fd) close(read_fd); return PRTE_ERR_FAILED_TO_START; } - /* tell the child to stop */ - if (WIFSTOPPED(status)) { - rc = kill(cd->child->pid, SIGSTOP); - if (-1 == rc) { - /* doomed */ - cd->child->state = PRTE_PROC_STATE_FAILED_TO_START; - PRTE_FLAG_UNSET(cd->child, PRTE_PROC_FLAG_ALIVE); - close(read_fd); - return PRTE_ERR_FAILED_TO_START; - } - errno = 0; + errno = 0; # if PRTE_HAVE_LINUX_PTRACE - ptrace(PRTE_DETACH, cd->child->pid, 0, (void *) SIGSTOP); + ptrace(PRTE_DETACH, cd->child->pid, 0, (void *) SIGSTOP); # else - ptrace(PRTE_DETACH, cd->child->pid, 0, SIGSTOP); + ptrace(PRTE_DETACH, cd->child->pid, 0, SIGSTOP); # endif - if (0 != errno) { - /* couldn't detach */ - cd->child->state = PRTE_PROC_STATE_FAILED_TO_START; - PRTE_FLAG_UNSET(cd->child, PRTE_PROC_FLAG_ALIVE); - close(read_fd); - return PRTE_ERR_FAILED_TO_START; - } - /* record that this proc is ready for debug */ - PRTE_ACTIVATE_PROC_STATE(&cd->child->name, PRTE_PROC_STATE_READY_FOR_DEBUG); + if (0 != errno) { + /* couldn't detach */ + cd->child->state = PRTE_PROC_STATE_FAILED_TO_START; + PRTE_FLAG_UNSET(cd->child, PRTE_PROC_FLAG_ALIVE); + close(read_fd); + return PRTE_ERR_FAILED_TO_START; } + /* record that this proc is ready for debug */ + PRTE_ACTIVATE_PROC_STATE(&cd->child->name, PRTE_PROC_STATE_READY_FOR_DEBUG); } } cd->child->state = PRTE_PROC_STATE_RUNNING; diff --git a/src/mca/oob/tcp/oob_tcp.c b/src/mca/oob/tcp/oob_tcp.c index b6ae8e7331..c9e82aa31b 100644 --- a/src/mca/oob/tcp/oob_tcp.c +++ b/src/mca/oob/tcp/oob_tcp.c @@ -221,6 +221,7 @@ static void recv_handler(int sd, short flg, void *cbdata) int flags; prte_oob_tcp_hdr_t hdr; prte_oob_tcp_peer_t *peer; + PRTE_HIDE_UNUSED_PARAMS(flg); PMIX_ACQUIRE_OBJECT(op); diff --git a/src/mca/oob/tcp/oob_tcp_component.c b/src/mca/oob/tcp/oob_tcp_component.c index ae5e91d3dc..b8fd1f56e1 100644 --- a/src/mca/oob/tcp/oob_tcp_component.c +++ b/src/mca/oob/tcp/oob_tcp_component.c @@ -816,6 +816,8 @@ static int component_set_addr(pmix_proc_t *peer, char **uris) static bool component_is_reachable(pmix_proc_t *peer) { + PRTE_HIDE_UNUSED_PARAMS(peer); + /* assume we can reach the hop - the module will tell us if it can't * when we try to send the first time, and then we'll correct it */ return true; @@ -825,6 +827,7 @@ void prte_mca_oob_tcp_component_set_module(int fd, short args, void *cbdata) { prte_oob_tcp_peer_op_t *pop = (prte_oob_tcp_peer_op_t *) cbdata; prte_oob_base_peer_t *bpr; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(pop); @@ -852,6 +855,7 @@ void prte_mca_oob_tcp_component_lost_connection(int fd, short args, void *cbdata { prte_oob_tcp_peer_op_t *pop = (prte_oob_tcp_peer_op_t *) cbdata; prte_oob_base_peer_t *bpr; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(pop); @@ -882,6 +886,7 @@ void prte_mca_oob_tcp_component_no_route(int fd, short args, void *cbdata) { prte_oob_tcp_msg_error_t *mop = (prte_oob_tcp_msg_error_t *) cbdata; prte_oob_base_peer_t *bpr; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(mop); @@ -914,6 +919,7 @@ void prte_mca_oob_tcp_component_hop_unknown(int fd, short args, void *cbdata) prte_oob_base_peer_t *bpr; pmix_status_t rc; pmix_byte_object_t bo; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(mop); @@ -990,6 +996,7 @@ void prte_mca_oob_tcp_component_hop_unknown(int fd, short args, void *cbdata) void prte_mca_oob_tcp_component_failed_to_connect(int fd, short args, void *cbdata) { prte_oob_tcp_peer_op_t *pop = (prte_oob_tcp_peer_op_t *) cbdata; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(pop); diff --git a/src/mca/oob/tcp/oob_tcp_connection.c b/src/mca/oob/tcp/oob_tcp_connection.c index b0b90b4db4..20be29f83c 100644 --- a/src/mca/oob/tcp/oob_tcp_connection.c +++ b/src/mca/oob/tcp/oob_tcp_connection.c @@ -160,6 +160,7 @@ void prte_oob_tcp_peer_try_connect(int fd, short args, void *cbdata) bool connected = false; pmix_pif_t *intf; char *host; + PRTE_HIDE_UNUSED_PARAMS(fd, args); remote_list = PMIX_NEW(pmix_list_t); if (NULL == remote_list) { diff --git a/src/mca/oob/tcp/oob_tcp_listener.c b/src/mca/oob/tcp/oob_tcp_listener.c index c50568006a..2962a6c06c 100644 --- a/src/mca/oob/tcp/oob_tcp_listener.c +++ b/src/mca/oob/tcp/oob_tcp_listener.c @@ -573,6 +573,7 @@ static void *listen_thread(pmix_object_t *obj) struct timeval timeout; fd_set readfds; prte_oob_tcp_listener_t *listener; + PRTE_HIDE_UNUSED_PARAMS(obj); /* only execute during the initial VM startup stage - once * all the initial daemons have reported in, we will revert @@ -749,6 +750,7 @@ static void *listen_thread(pmix_object_t *obj) static void connection_handler(int sd, short flags, void *cbdata) { prte_oob_tcp_pending_connection_t *new_connection; + PRTE_HIDE_UNUSED_PARAMS(sd, flags); new_connection = (prte_oob_tcp_pending_connection_t *) cbdata; @@ -776,6 +778,7 @@ static void connection_event_handler(int incoming_sd, short flags, void *cbdata) struct sockaddr addr; prte_socklen_t addrlen = sizeof(struct sockaddr); int sd; + PRTE_HIDE_UNUSED_PARAMS(flags, cbdata); sd = accept(incoming_sd, (struct sockaddr *) &addr, &addrlen); pmix_output_verbose(OOB_TCP_DEBUG_CONNECT, prte_oob_base_framework.framework_output, diff --git a/src/mca/oob/tcp/oob_tcp_sendrecv.c b/src/mca/oob/tcp/oob_tcp_sendrecv.c index a7e5d0330d..8b2b627fc0 100644 --- a/src/mca/oob/tcp/oob_tcp_sendrecv.c +++ b/src/mca/oob/tcp/oob_tcp_sendrecv.c @@ -83,6 +83,7 @@ void prte_oob_tcp_queue_msg(int sd, short args, void *cbdata) { prte_oob_tcp_send_t *snd = (prte_oob_tcp_send_t *) cbdata; prte_oob_tcp_peer_t *peer; + PRTE_HIDE_UNUSED_PARAMS(sd, args); PMIX_ACQUIRE_OBJECT(snd); peer = (prte_oob_tcp_peer_t *) snd->peer; @@ -199,6 +200,7 @@ void prte_oob_tcp_send_handler(int sd, short flags, void *cbdata) prte_oob_tcp_peer_t *peer = (prte_oob_tcp_peer_t *) cbdata; prte_oob_tcp_send_t *msg; int rc; + PRTE_HIDE_UNUSED_PARAMS(sd, flags); PMIX_ACQUIRE_OBJECT(peer); msg = peer->send_msg; @@ -384,6 +386,7 @@ void prte_oob_tcp_recv_handler(int sd, short flags, void *cbdata) int rc; prte_rml_send_t *snd; pmix_byte_object_t bo; + PRTE_HIDE_UNUSED_PARAMS(sd, flags); PMIX_ACQUIRE_OBJECT(peer); diff --git a/src/mca/plm/base/plm_base_launch_support.c b/src/mca/plm/base/plm_base_launch_support.c index 4552438c19..68d6a31e5f 100644 --- a/src/mca/plm/base/plm_base_launch_support.c +++ b/src/mca/plm/base/plm_base_launch_support.c @@ -618,8 +618,6 @@ static void job_timeout_cb(int fd, short event, void *cbdata) void prte_plm_base_setup_job(int fd, short args, void *cbdata) { int rc; - int i; - prte_app_context_t *app; prte_state_caddy_t *caddy = (prte_state_caddy_t *) cbdata; prte_timer_t *timer = NULL; int time, *tp; @@ -700,11 +698,6 @@ void prte_plm_base_complete_setup(int fd, short args, void *cbdata) { prte_job_t *jdata; prte_state_caddy_t *caddy = (prte_state_caddy_t *) cbdata; - prte_node_t *node; - uint32_t h; - pmix_rank_t *vptr; - int i, rc; - char *serial_number; PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(caddy); @@ -1119,11 +1112,10 @@ void prte_plm_base_daemon_topology(int status, pmix_proc_t *sender, { hwloc_topology_t topo; int rc, idx; - char *sig, *coprocessors, **sns; + char *sig; prte_proc_t *daemon = NULL, *dptr, *dnxt; prte_topology_t *t, *t2; int i; - uint32_t h; prte_job_t *jdata; uint8_t flag; pmix_data_buffer_t datbuf, *data; diff --git a/src/mca/plm/base/plm_base_receive.c b/src/mca/plm/base/plm_base_receive.c index 6207a3702a..0019f72876 100644 --- a/src/mca/plm/base/plm_base_receive.c +++ b/src/mca/plm/base/plm_base_receive.c @@ -454,11 +454,10 @@ void prte_plm_base_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *buf PMIX_LOAD_NSPACE(name.nspace, job); /* get the job object */ jdata = prte_get_job_data_object(job); - tptr = &tgt; debugging = false; - if (prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_ON_EXEC, (void**)&tptr, PMIX_PROC_RANK) || - prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_IN_INIT, (void**)&tptr, PMIX_PROC_RANK) || - prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_IN_APP, (void**)&tptr, PMIX_PROC_RANK)) { + if (prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_ON_EXEC, NULL, PMIX_BOOL) || + prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_IN_INIT, NULL, PMIX_BOOL) || + prte_get_attribute(&jdata->attributes, PRTE_JOB_STOP_IN_APP, NULL, PMIX_BOOL)) { debugging = true; } count = 1; @@ -494,19 +493,13 @@ void prte_plm_base_recv(int status, pmix_proc_t *sender, pmix_data_buffer_t *buf proc->pid = pid; tptr = &tgt; if (debugging) { - if (PMIX_CHECK_RANK(proc->rank, tgt)) { - jdata->num_ready_for_debug++; - } + jdata->num_ready_for_debug++; } /* get entry from next rank */ rc = PMIx_Data_unpack(NULL, buffer, &vpid, &count, PMIX_PROC_RANK); } - if (debugging) { - if ((PMIX_RANK_WILDCARD == tgt && jdata->num_ready_for_debug == jdata->num_procs) || - (PMIX_RANK_LOCAL_PEERS == tgt && jdata->num_ready_for_debug == jdata->num_local_procs) || - (PMIX_RANK_WILDCARD != tgt && 1 == jdata->num_ready_for_debug)) { - PRTE_ACTIVATE_JOB_STATE(jdata, PRTE_JOB_STATE_READY_FOR_DEBUG); - } + if (debugging && jdata->num_ready_for_debug == jdata->num_procs) { + PRTE_ACTIVATE_JOB_STATE(jdata, PRTE_JOB_STATE_READY_FOR_DEBUG); } /* prepare for next job */ count = 1; diff --git a/src/mca/plm/slurm/plm_slurm_module.c b/src/mca/plm/slurm/plm_slurm_module.c index dc2bb2f83c..f518c4eb5c 100644 --- a/src/mca/plm/slurm/plm_slurm_module.c +++ b/src/mca/plm/slurm/plm_slurm_module.c @@ -190,6 +190,7 @@ static void launch_daemons(int fd, short args, void *cbdata) bool failed_launch = true; prte_job_t *daemons; prte_state_caddy_t *state = (prte_state_caddy_t *) cbdata; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(state); @@ -523,8 +524,9 @@ static void srun_wait_cb(int sd, short fd, void *cbdata) prte_proc_t *proc = t2->child; prte_job_t *jdata; FILE *fp; - char version[1024], *cptr, *endptr; - int major, minor; + char version[1024], *cptr; + int major=0, minor=0; + PRTE_HIDE_UNUSED_PARAMS(sd, fd); jdata = prte_get_job_data_object(PRTE_PROC_MY_NAME->nspace); @@ -626,6 +628,7 @@ static int plm_slurm_start_proc(int argc, char **argv, char *prefix) char **tmp = NULL, *p; char *exec_argv = pmix_path_findv(argv[0], 0, environ, NULL); prte_proc_t *dummy; + PRTE_HIDE_UNUSED_PARAMS(argc); if (NULL == exec_argv) { pmix_show_help("help-plm-slurm.txt", "no-srun", true); diff --git a/src/mca/plm/ssh/plm_ssh_module.c b/src/mca/plm/ssh/plm_ssh_module.c index e808b86826..1f62e0ac04 100644 --- a/src/mca/plm/ssh/plm_ssh_module.c +++ b/src/mca/plm/ssh/plm_ssh_module.c @@ -256,6 +256,7 @@ static void ssh_wait_daemon(int sd, short flags, void *cbdata) prte_plm_ssh_caddy_t *caddy = (prte_plm_ssh_caddy_t *) t2->cbdata; prte_proc_t *daemon = caddy->daemon; pmix_status_t rc; + PRTE_HIDE_UNUSED_PARAMS(sd, flags); if (prte_prteds_term_ordered || prte_abnormal_term_ordered) { /* ignore any such report - it will occur if we left the @@ -696,6 +697,7 @@ static void ssh_child(int argc, char **argv) char **exec_argv; int fdin; sigset_t sigs; + PRTE_HIDE_UNUSED_PARAMS(argc); /* setup environment */ env = pmix_argv_copy(prte_launch_environ); @@ -915,6 +917,7 @@ static void process_launch_list(int fd, short args, void *cbdata) pmix_list_item_t *item; pid_t pid; prte_plm_ssh_caddy_t *caddy; + PRTE_HIDE_UNUSED_PARAMS(fd, args, cbdata); PMIX_ACQUIRE_OBJECT(caddy); @@ -1008,10 +1011,10 @@ static void launch_daemons(int fd, short args, void *cbdata) prte_job_t *daemons; prte_state_caddy_t *state = (prte_state_caddy_t *) cbdata; prte_plm_ssh_caddy_t *caddy; - pmix_list_t coll; char *username, *nname; int port, *portptr; prte_routed_tree_t *child; + PRTE_HIDE_UNUSED_PARAMS(fd, args); PMIX_ACQUIRE_OBJECT(state); diff --git a/src/mca/ras/pbs/ras_pbs_module.c b/src/mca/ras/pbs/ras_pbs_module.c index 54ba945f29..e124c1992c 100644 --- a/src/mca/ras/pbs/ras_pbs_module.c +++ b/src/mca/ras/pbs/ras_pbs_module.c @@ -67,6 +67,7 @@ static int allocate(prte_job_t *jdata, pmix_list_t *nodes) { int ret; char *pbs_jobid; + PRTE_HIDE_UNUSED_PARAMS(jdata); /* get our PBS jobid from the environment */ if (NULL == (pbs_jobid = getenv("PBS_JOBID"))) { @@ -127,6 +128,7 @@ static int discover(pmix_list_t *nodelist, char *pbs_jobid) char *hostname, *cppn; int ppn; bool found; + PRTE_HIDE_UNUSED_PARAMS(pbs_jobid); /* Ignore anything that the user already specified -- we're getting nodes only from PBS. */ diff --git a/src/mca/ras/simulator/ras_sim_module.c b/src/mca/ras/simulator/ras_sim_module.c index 006cbae52b..00f665eeda 100644 --- a/src/mca/ras/simulator/ras_sim_module.c +++ b/src/mca/ras/simulator/ras_sim_module.c @@ -54,8 +54,7 @@ static int allocate(prte_job_t *jdata, pmix_list_t *nodes) char *tmp, *job_cpuset = NULL; char prefix[6]; bool use_hwthread_cpus = false; - hwloc_obj_t root; - hwloc_cpuset_t available, mycpus; + hwloc_cpuset_t available; node_cnt = pmix_argv_split(prte_mca_ras_simulator_component.num_nodes, ','); if (NULL != prte_mca_ras_simulator_component.slots) { diff --git a/src/mca/ras/slurm/ras_slurm_module.c b/src/mca/ras/slurm/ras_slurm_module.c index cd559c6ba6..f942460231 100644 --- a/src/mca/ras/slurm/ras_slurm_module.c +++ b/src/mca/ras/slurm/ras_slurm_module.c @@ -347,6 +347,8 @@ static int prte_ras_slurm_allocate(prte_job_t *jdata, pmix_list_t *nodes) static void deallocate(prte_job_t *jdata, prte_app_context_t *app) { + PRTE_HIDE_UNUSED_PARAMS(jdata, app); + return; } static int prte_ras_slurm_finalize(void) @@ -733,6 +735,7 @@ static void timeout(int fd, short args, void *cbdata) { local_jobtracker_t *jtrk = (local_jobtracker_t *) cbdata; prte_job_t *jdata; + PRTE_HIDE_UNUSED_PARAMS(fd, args); pmix_show_help("help-ras-slurm.txt", "slurm-dyn-alloc-timeout", true); pmix_output_verbose(2, prte_ras_base_framework.framework_output, @@ -758,6 +761,7 @@ static void recv_data(int fd, short args, void *cbdata) pmix_nspace_t jobid; prte_job_t *jdata; char **dash_host = NULL; + PRTE_HIDE_UNUSED_PARAMS(args, cbdata); pmix_output_verbose(2, prte_ras_base_framework.framework_output, "%s ras:slurm: dynamic allocation - data recvd", diff --git a/src/mca/rmaps/base/rmaps_base_frame.c b/src/mca/rmaps/base/rmaps_base_frame.c index 98601c97ec..85e7216d34 100644 --- a/src/mca/rmaps/base/rmaps_base_frame.c +++ b/src/mca/rmaps/base/rmaps_base_frame.c @@ -622,8 +622,6 @@ int prte_rmaps_base_set_ranking_policy(prte_job_t *jdata, char *spec) { prte_ranking_policy_t tmp; prte_mapping_policy_t mapping; - char **ck, *jobppr; - size_t len; /* set default */ tmp = 0; diff --git a/src/mca/rmaps/ppr/rmaps_ppr.c b/src/mca/rmaps/ppr/rmaps_ppr.c index b0caede4d7..4075f19bea 100644 --- a/src/mca/rmaps/ppr/rmaps_ppr.c +++ b/src/mca/rmaps/ppr/rmaps_ppr.c @@ -43,19 +43,19 @@ prte_rmaps_base_module_t prte_rmaps_ppr_module = { static int ppr_mapper(prte_job_t *jdata, prte_rmaps_options_t *options) { - int rc = PRTE_SUCCESS, j, n, ppr, idx, ncpus; + int rc = PRTE_SUCCESS, j, ppr, idx, ncpus; prte_proc_t *proc; pmix_mca_base_component_t *c = &prte_mca_rmaps_ppr_component; prte_node_t *node, *nd; prte_app_context_t *app; - pmix_rank_t total_procs, nprocs_mapped; + pmix_rank_t nprocs_mapped; prte_mapping_policy_t mapping = 0; prte_ranking_policy_t ranking; hwloc_obj_t obj; - unsigned int nobjs, i, num_available; + unsigned int nobjs, i; pmix_list_t node_list; int32_t num_slots; - char **ppr_req, **ck, *jobppr = NULL; + char **ck, *jobppr = NULL; size_t len; bool initial_map = true; prte_binding_policy_t savebind = options->bind; diff --git a/src/mca/rmaps/rank_file/rmaps_rank_file.c b/src/mca/rmaps/rank_file/rmaps_rank_file.c index 0309080108..98da88f660 100644 --- a/src/mca/rmaps/rank_file/rmaps_rank_file.c +++ b/src/mca/rmaps/rank_file/rmaps_rank_file.c @@ -80,7 +80,6 @@ static int prte_rmaps_rf_map(prte_job_t *jdata, prte_app_context_t *app = NULL; int32_t i, k; pmix_list_t node_list; - pmix_list_item_t *item; prte_node_t *node, *nd, *root_node; pmix_rank_t rank, vpid_start; int32_t num_slots; @@ -92,7 +91,6 @@ static int prte_rmaps_rf_map(prte_job_t *jdata, char *slots; bool initial_map = true; char *rankfile = NULL; - prte_binding_policy_t bind; /* only handle initial launch of rf job */ if (PRTE_FLAG_TEST(jdata, PRTE_JOB_FLAG_RESTART)) { diff --git a/src/mca/rmaps/rank_file/rmaps_rank_file_component.c b/src/mca/rmaps/rank_file/rmaps_rank_file_component.c index a0969ab0b7..33a1f5ae95 100644 --- a/src/mca/rmaps/rank_file/rmaps_rank_file_component.c +++ b/src/mca/rmaps/rank_file/rmaps_rank_file_component.c @@ -47,7 +47,7 @@ static int prte_rmaps_rank_file_query(pmix_mca_base_module_t **module, int *priority); prte_rmaps_rf_component_t prte_mca_rmaps_rank_file_component = { - { + .super = { PRTE_RMAPS_BASE_VERSION_4_0_0, .pmix_mca_component_name = "rank_file", diff --git a/src/mca/rmaps/round_robin/rmaps_rr.c b/src/mca/rmaps/round_robin/rmaps_rr.c index e9fa3b5526..6fe6715968 100644 --- a/src/mca/rmaps/round_robin/rmaps_rr.c +++ b/src/mca/rmaps/round_robin/rmaps_rr.c @@ -50,7 +50,6 @@ static int prte_rmaps_rr_map(prte_job_t *jdata, prte_app_context_t *app; int i; pmix_list_t node_list; - pmix_list_item_t *item; int32_t num_slots; int rc; pmix_mca_base_component_t *c = &prte_mca_rmaps_round_robin_component; @@ -98,8 +97,6 @@ static int prte_rmaps_rr_map(prte_job_t *jdata, /* cycle through the app_contexts, mapping them sequentially */ for (i = 0; i < jdata->apps->size; i++) { - hwloc_obj_type_t target; - unsigned cache_level; app = (prte_app_context_t *) pmix_pointer_array_get_item(jdata->apps, i); if (NULL == app) { continue; diff --git a/src/mca/rmaps/round_robin/rmaps_rr_mappers.c b/src/mca/rmaps/round_robin/rmaps_rr_mappers.c index 00bc4fbe9b..f21df00f81 100644 --- a/src/mca/rmaps/round_robin/rmaps_rr_mappers.c +++ b/src/mca/rmaps/round_robin/rmaps_rr_mappers.c @@ -220,9 +220,8 @@ int prte_rmaps_rr_bynode(prte_job_t *jdata, pmix_rank_t num_procs, prte_rmaps_options_t *options) { - int rc, j, nprocs_mapped, nnode, ncpus; + int rc, j, nprocs_mapped, ncpus; prte_node_t *node, *nd; - float balance; bool second_pass = false; prte_proc_t *proc; prte_binding_policy_t savebind = options->bind; @@ -375,6 +374,7 @@ int prte_rmaps_rr_bycpu(prte_job_t *jdata, prte_app_context_t *app, float balance; char *savecpuset = NULL; prte_binding_policy_t savebind = options->bind; + PRTE_HIDE_UNUSED_PARAMS(num_procs); pmix_output_verbose(2, prte_rmaps_base_framework.framework_output, "mca:rmaps:rr: mapping by cpu for job %s slots %d num_procs %lu", @@ -558,7 +558,7 @@ int prte_rmaps_rr_byobj(prte_job_t *jdata, prte_app_context_t *app, prte_rmaps_options_t *options) { int i, rc, nprocs_mapped, nprocs; - prte_node_t *node, *nd; + prte_node_t *node; int extra_procs_to_assign = 0, nxtra_nodes = 0; int navg, nxtra_objs = 0, ncpus; float balance; diff --git a/src/mca/rmaps/seq/rmaps_seq.c b/src/mca/rmaps/seq/rmaps_seq.c index 94b8cd9228..77cd2dd8a8 100644 --- a/src/mca/rmaps/seq/rmaps_seq.c +++ b/src/mca/rmaps/seq/rmaps_seq.c @@ -121,7 +121,7 @@ static int prte_rmaps_seq_map(prte_job_t *jdata, int i, n; int32_t j; pmix_list_item_t *item; - prte_node_t *node, *nd, *nsave = NULL; + prte_node_t *node, *nd; seq_node_t *sq, *save = NULL, *seq; pmix_rank_t vpid, apprank; int32_t num_nodes; diff --git a/src/mca/rtc/hwloc/rtc_hwloc.c b/src/mca/rtc/hwloc/rtc_hwloc.c index 58a2ce5976..d1ba2ff8f9 100644 --- a/src/mca/rtc/hwloc/rtc_hwloc.c +++ b/src/mca/rtc/hwloc/rtc_hwloc.c @@ -79,6 +79,8 @@ static void finalize(void) static void assign(prte_job_t *jdata) { + PRTE_HIDE_UNUSED_PARAMS(jdata); + return; } static void set(prte_odls_spawn_caddy_t *cd, int write_fd) diff --git a/src/mca/schizo/base/help-schizo-cli.txt b/src/mca/schizo/base/help-schizo-cli.txt index 8f57fe7fe0..677c32af5d 100644 --- a/src/mca/schizo/base/help-schizo-cli.txt +++ b/src/mca/schizo/base/help-schizo-cli.txt @@ -538,21 +538,15 @@ Supported values include: stderr if "+", or into the specified file otherwise. If no channel is specified, output will be directed to stdout. -- STOP-ON-EXEC[(=)] directs the runtime to stop the indicated - application process(es) immediately upon exec'ing it. If a boolean value is - provided, then the directive will apply to all processes in the job. Otherwise, - a comma-delimited list of rank ranges can be specified. Used for debugging. - This option defaults to a true value if the option is given without a value. +- STOP-ON-EXEC directs the runtime to stop the application process(es) immediately + upon exec'ing them. The directive will apply to all processes in the job. -- STOP-IN-INIT[(=)] indicates that the runtime should direct the - indicated application process(es) to stop in PMIx_Init. If a boolean value is - provided, then the directive will apply to all processes in the job. Otherwise, - a comma-delimited list of rank ranges can be specified. Used for debugging. - This option defaults to a true value if the option is given without a value. +- STOP-IN-INIT indicates that the runtime should direct the application process(es) + to stop in PMIx_Init. The directive will apply to all processes in the job. -- STOP-IN-APP=