Complete integration of job_control
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
Этот коммит содержится в:
родитель
9948084130
Коммит
5cfa2a7fca
@ -98,7 +98,8 @@ enum {
|
|||||||
OPAL_ERR_HEARTBEAT_ALERT = (OPAL_ERR_BASE - 67),
|
OPAL_ERR_HEARTBEAT_ALERT = (OPAL_ERR_BASE - 67),
|
||||||
OPAL_ERR_FILE_ALERT = (OPAL_ERR_BASE - 68),
|
OPAL_ERR_FILE_ALERT = (OPAL_ERR_BASE - 68),
|
||||||
OPAL_ERR_MODEL_DECLARED = (OPAL_ERR_BASE - 69),
|
OPAL_ERR_MODEL_DECLARED = (OPAL_ERR_BASE - 69),
|
||||||
OPAL_PMIX_LAUNCH_DIRECTIVE = (OPAL_ERR_BASE - 70)
|
OPAL_PMIX_LAUNCH_DIRECTIVE = (OPAL_ERR_BASE - 70),
|
||||||
|
OPAL_OPERATION_SUCCEEDED = (OPAL_ERR_BASE - 71)
|
||||||
};
|
};
|
||||||
|
|
||||||
#define OPAL_ERR_MAX (OPAL_ERR_BASE - 100)
|
#define OPAL_ERR_MAX (OPAL_ERR_BASE - 100)
|
||||||
|
@ -185,6 +185,7 @@ pmix_status_t pmix1_convert_opalrc(int rc)
|
|||||||
case OPAL_ERROR:
|
case OPAL_ERROR:
|
||||||
return PMIX_ERROR;
|
return PMIX_ERROR;
|
||||||
case OPAL_SUCCESS:
|
case OPAL_SUCCESS:
|
||||||
|
case OPAL_OPERATION_SUCCEEDED:
|
||||||
return PMIX_SUCCESS;
|
return PMIX_SUCCESS;
|
||||||
default:
|
default:
|
||||||
return PMIX_ERROR;
|
return PMIX_ERROR;
|
||||||
|
@ -440,6 +440,7 @@ pmix_status_t ext2x_convert_opalrc(int rc)
|
|||||||
case OPAL_ERROR:
|
case OPAL_ERROR:
|
||||||
return PMIX_ERROR;
|
return PMIX_ERROR;
|
||||||
case OPAL_SUCCESS:
|
case OPAL_SUCCESS:
|
||||||
|
case OPAL_OPERATION_SUCCEEDED:
|
||||||
return PMIX_SUCCESS;
|
return PMIX_SUCCESS;
|
||||||
default:
|
default:
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -364,37 +364,13 @@ void pmix3x_event_hdlr(size_t evhdlr_registration_id,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cleanup_cbfunc(pmix_status_t status,
|
|
||||||
pmix_info_t *info, size_t ninfo,
|
|
||||||
void *cbdata,
|
|
||||||
pmix_release_cbfunc_t release_fn,
|
|
||||||
void *release_cbdata)
|
|
||||||
{
|
|
||||||
opal_pmix_lock_t *lk = (opal_pmix_lock_t*)cbdata;
|
|
||||||
|
|
||||||
OPAL_POST_OBJECT(lk);
|
|
||||||
|
|
||||||
/* let the library release the data and cleanup from
|
|
||||||
* the operation */
|
|
||||||
if (NULL != release_fn) {
|
|
||||||
release_fn(release_cbdata);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* release the block */
|
|
||||||
lk->status = pmix3x_convert_rc(status);
|
|
||||||
OPAL_PMIX_WAKEUP_THREAD(lk);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int pmix3x_register_cleanup(char *path, bool directory, bool ignore, bool jobscope)
|
static int pmix3x_register_cleanup(char *path, bool directory, bool ignore, bool jobscope)
|
||||||
{
|
{
|
||||||
opal_pmix_lock_t lk;
|
|
||||||
pmix_info_t pinfo[3];
|
pmix_info_t pinfo[3];
|
||||||
size_t n, ninfo=0;
|
size_t n, ninfo=0;
|
||||||
pmix_status_t rc;
|
pmix_status_t rc;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
OPAL_PMIX_CONSTRUCT_LOCK(&lk);
|
|
||||||
|
|
||||||
if (ignore) {
|
if (ignore) {
|
||||||
/* they want this path ignored */
|
/* they want this path ignored */
|
||||||
PMIX_INFO_LOAD(&pinfo[ninfo], PMIX_CLEANUP_IGNORE, path, PMIX_STRING);
|
PMIX_INFO_LOAD(&pinfo[ninfo], PMIX_CLEANUP_IGNORE, path, PMIX_STRING);
|
||||||
@ -415,18 +391,12 @@ static int pmix3x_register_cleanup(char *path, bool directory, bool ignore, bool
|
|||||||
|
|
||||||
/* if they want this applied to the job, then indicate so */
|
/* if they want this applied to the job, then indicate so */
|
||||||
if (jobscope) {
|
if (jobscope) {
|
||||||
rc = PMIx_Job_control_nb(NULL, 0, pinfo, ninfo, cleanup_cbfunc, (void*)&lk);
|
rc = PMIx_Job_control_nb(NULL, 0, pinfo, ninfo, NULL, NULL);
|
||||||
} else {
|
} else {
|
||||||
/* only applies to us */
|
/* only applies to us */
|
||||||
rc = PMIx_Job_control_nb(&mca_pmix_pmix3x_component.myproc, 1, pinfo, ninfo, cleanup_cbfunc, (void*)&lk);
|
rc = PMIx_Job_control_nb(&mca_pmix_pmix3x_component.myproc, 1, pinfo, ninfo, NULL, NULL);
|
||||||
}
|
}
|
||||||
if (PMIX_SUCCESS != rc) {
|
ret = pmix3x_convert_rc(rc);
|
||||||
ret = pmix3x_convert_rc(rc);
|
|
||||||
} else {
|
|
||||||
OPAL_PMIX_WAIT_THREAD(&lk);
|
|
||||||
ret = lk.status;
|
|
||||||
}
|
|
||||||
OPAL_PMIX_DESTRUCT_LOCK(&lk);
|
|
||||||
for (n=0; n < ninfo; n++) {
|
for (n=0; n < ninfo; n++) {
|
||||||
PMIX_INFO_DESTRUCT(&pinfo[n]);
|
PMIX_INFO_DESTRUCT(&pinfo[n]);
|
||||||
}
|
}
|
||||||
@ -536,6 +506,10 @@ pmix_status_t pmix3x_convert_opalrc(int rc)
|
|||||||
return PMIX_ERROR;
|
return PMIX_ERROR;
|
||||||
case OPAL_SUCCESS:
|
case OPAL_SUCCESS:
|
||||||
return PMIX_SUCCESS;
|
return PMIX_SUCCESS;
|
||||||
|
|
||||||
|
case OPAL_OPERATION_SUCCEEDED:
|
||||||
|
return PMIX_OPERATION_SUCCEEDED;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -629,6 +603,10 @@ int pmix3x_convert_rc(pmix_status_t rc)
|
|||||||
return OPAL_ERROR;
|
return OPAL_ERROR;
|
||||||
case PMIX_SUCCESS:
|
case PMIX_SUCCESS:
|
||||||
return OPAL_SUCCESS;
|
return OPAL_SUCCESS;
|
||||||
|
|
||||||
|
case PMIX_OPERATION_SUCCEEDED:
|
||||||
|
return OPAL_OPERATION_SUCCEEDED;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2014 Research Organization for Information Science
|
* Copyright (c) 2014 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
|
* Copyright (c) 2015-2018 Intel, Inc. All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -93,6 +93,7 @@ enum {
|
|||||||
ORTE_ERR_PROC_ABORTING = OPAL_ERR_PROC_ABORTING,
|
ORTE_ERR_PROC_ABORTING = OPAL_ERR_PROC_ABORTING,
|
||||||
ORTE_ERR_NODE_DOWN = OPAL_ERR_NODE_DOWN,
|
ORTE_ERR_NODE_DOWN = OPAL_ERR_NODE_DOWN,
|
||||||
ORTE_ERR_NODE_OFFLINE = OPAL_ERR_NODE_OFFLINE,
|
ORTE_ERR_NODE_OFFLINE = OPAL_ERR_NODE_OFFLINE,
|
||||||
|
ORTE_OPERATION_SUCCEEDED = OPAL_OPERATION_SUCCEEDED,
|
||||||
|
|
||||||
/* error codes specific to ORTE - don't forget to update
|
/* error codes specific to ORTE - don't forget to update
|
||||||
orte/util/error_strings.c when adding new error codes!!
|
orte/util/error_strings.c when adding new error codes!!
|
||||||
|
@ -1186,5 +1186,5 @@ int pmix_server_job_ctrl_fn(const opal_process_name_t *requestor,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ORTE_SUCCESS;
|
return ORTE_OPERATION_SUCCEEDED;
|
||||||
}
|
}
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user