Some cleanups for staged execution
This commit was SVN r27317.
Этот коммит содержится в:
родитель
e643c09dee
Коммит
6b5f9d7767
@ -224,6 +224,11 @@ static int staged_mapper(orte_job_t *jdata)
|
||||
/* track number of procs on node and number of slots used */
|
||||
node->num_procs++;
|
||||
node->slots_inuse++;
|
||||
opal_output_verbose(10, orte_rmaps_base.rmaps_output,
|
||||
"%s Proc %s on node %s: slots %d inuse %d",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||
ORTE_NAME_PRINT(&proc->name), node->name,
|
||||
(int)node->slots, (int)node->slots_inuse);
|
||||
if (node->slots_inuse == node->slots) {
|
||||
opal_list_remove_item(&node_list, &node->super);
|
||||
OBJ_RELEASE(node);
|
||||
|
@ -57,7 +57,7 @@ orte_state_base_component_t mca_state_orted_component =
|
||||
},
|
||||
};
|
||||
|
||||
static int my_priority=1000;
|
||||
static int my_priority=100;
|
||||
|
||||
static int state_orted_open(void)
|
||||
{
|
||||
|
@ -270,6 +270,11 @@ static void cleanup_node(orte_proc_t *proc)
|
||||
}
|
||||
node->num_procs--;
|
||||
node->slots_inuse--;
|
||||
OPAL_OUTPUT_VERBOSE((5, orte_state_base_output,
|
||||
"%s state:staged_hnp:track_procs proc %s termed node %s has %d slots, %d slots inuse",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
|
||||
ORTE_NAME_PRINT(&proc->name), node->name,
|
||||
(int)node->slots, (int)node->slots_inuse));
|
||||
for (i=0; i < node->procs->size; i++) {
|
||||
if (NULL == (p = (orte_proc_t*)opal_pointer_array_get_item(node->procs, i))) {
|
||||
continue;
|
||||
@ -281,10 +286,6 @@ static void cleanup_node(orte_proc_t *proc)
|
||||
break;
|
||||
}
|
||||
}
|
||||
OPAL_OUTPUT_VERBOSE((5, orte_state_base_output,
|
||||
"%s state:staged_hnp:track_procs node %s has %d slots, %d slots inuse",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), node->name,
|
||||
(int)node->slots, (int)node->slots_inuse));
|
||||
}
|
||||
|
||||
static void track_procs(int fd, short args, void *cbdata)
|
||||
|
@ -164,10 +164,11 @@ static void track_procs(int fd, short argc, void *cbdata)
|
||||
orte_process_name_t *proc = &caddy->name;
|
||||
orte_proc_state_t state = caddy->proc_state;
|
||||
orte_job_t *jdata;
|
||||
orte_proc_t *pdata;
|
||||
orte_proc_t *pdata, *pptr;
|
||||
opal_buffer_t *alert;
|
||||
int rc;
|
||||
orte_plm_cmd_flag_t cmd;
|
||||
int i;
|
||||
|
||||
OPAL_OUTPUT_VERBOSE((5, orte_state_base_output,
|
||||
"%s state:staged_orted:track_procs called for proc %s state %s",
|
||||
@ -238,7 +239,20 @@ static void track_procs(int fd, short argc, void *cbdata)
|
||||
orte_rml_send_callback, NULL))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
}
|
||||
}
|
||||
/* find this proc in the children array and remove it so
|
||||
* we don't keep telling the HNP that it died
|
||||
*/
|
||||
for (i=0; i < orte_local_children->size; i++) {
|
||||
if (NULL == (pptr = (orte_proc_t*)opal_pointer_array_get_item(orte_local_children, i))) {
|
||||
continue;
|
||||
}
|
||||
if (pptr == pdata) {
|
||||
opal_pointer_array_set_item(orte_local_children, i, NULL);
|
||||
OBJ_RELEASE(pdata);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Release the stdin IOF file descriptor for this child, if one
|
||||
* was defined. File descriptors for the other IOF channels - stdout,
|
||||
* stderr, and stddiag - were released when their associated pipes
|
||||
@ -287,6 +301,19 @@ static void track_procs(int fd, short argc, void *cbdata)
|
||||
orte_rml_send_callback, NULL))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
}
|
||||
/* find this proc in the children array and remove it so
|
||||
* we don't keep telling the HNP that it died
|
||||
*/
|
||||
for (i=0; i < orte_local_children->size; i++) {
|
||||
if (NULL == (pptr = (orte_proc_t*)opal_pointer_array_get_item(orte_local_children, i))) {
|
||||
continue;
|
||||
}
|
||||
if (pptr == pdata) {
|
||||
opal_pointer_array_set_item(orte_local_children, i, NULL);
|
||||
OBJ_RELEASE(pdata);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user