1
1

Some cleanups for staged execution

This commit was SVN r27317.
Этот коммит содержится в:
Ralph Castain 2012-09-12 09:15:33 +00:00
родитель e643c09dee
Коммит 6b5f9d7767
4 изменённых файлов: 40 добавлений и 7 удалений

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

@ -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;