1
1
This commit was SVN r24748.
Этот коммит содержится в:
Ralph Castain 2011-06-05 19:17:56 +00:00
родитель 1491d52bd7
Коммит bd8d9a943a

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

@ -55,6 +55,7 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
int rc;
bool found;
opal_sysinfo_value_t *req_res, *ninfo;
char **vals;
/** set default answer */
*total_num_slots = 0;
@ -198,6 +199,11 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
item = opal_list_get_next(item)) {
req_res = (opal_sysinfo_value_t*)item;
OPAL_OUTPUT_VERBOSE((5, orte_rmaps_base.rmaps_output,
"%s CHECKING CONSTRAINT %s FOR APP %s",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
req_res->key, app->app));
/* check against node values */
item2 = opal_list_get_first(allocated_nodes);
while (item2 != opal_list_get_end(allocated_nodes)) {
@ -210,13 +216,28 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
ninfo = (opal_sysinfo_value_t*)item3;
if (0 == strcmp(req_res->key, ninfo->key)) {
OPAL_OUTPUT_VERBOSE((5, orte_rmaps_base.rmaps_output,
"%s CHECKING RESOURCE %s:%s ON NODE %s:%s",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ninfo->key, req_res->data.str,
node->name, ninfo->data.str));
if (OPAL_STRING == req_res->type) {
if (0 == strncasecmp(req_res->data.str,
ninfo->data.str,
strlen(req_res->data.str))) {
found = true;
/* there could be multiple hosts or host-types here */
vals = opal_argv_split(req_res->data.str, ',');
for (i=0; NULL != vals[i]; i++) {
if (0 == strncasecmp(vals[i], ninfo->data.str,
strlen(vals[i]))) {
found = true;
break;
}
}
opal_argv_free(vals);
} else {
OPAL_OUTPUT_VERBOSE((5, orte_rmaps_base.rmaps_output,
"%s CHECKING RESOURCE %s:%ld ON NODE %s:%ld",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
ninfo->key, (long)req_res->data.i64,
node->name, (long)ninfo->data.i64));
if (req_res->data.i64 <= ninfo->data.i64) {
found = true;
}
@ -224,6 +245,11 @@ int orte_rmaps_base_get_target_nodes(opal_list_t *allocated_nodes, orte_std_cntr
break;
}
}
OPAL_OUTPUT_VERBOSE((5, orte_rmaps_base.rmaps_output,
"%s CONSTRAINT RESULTED IN %s NODE %s",
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME),
found ? "RETAINING" : "REMOVING",
node->name));
if (!found) {
opal_list_remove_item(allocated_nodes, item2);
OBJ_RELEASE(item2);