diff --git a/src/plugins/select/bluegene/plugin/select_bluegene.c b/src/plugins/select/bluegene/plugin/select_bluegene.c index 3f5638b3fc6c58b87789e094eafd324698214593..dd3bd6d0af158797a6ae659cdd7d6dc77bf3a703 100644 --- a/src/plugins/select/bluegene/plugin/select_bluegene.c +++ b/src/plugins/select/bluegene/plugin/select_bluegene.c @@ -383,37 +383,23 @@ extern int select_p_alter_node_cnt(enum select_node_cnt type, void *data) found_record = bg_record; list_iterator_destroy(itr); } - if(!found_record|| + if(!found_record || (found_record->cpus_per_bp == procs_per_node)) (*nodes) = bluegene_bp_node_cnt; else (*nodes) = found_record->node_cnt; break; case SELECT_APPLY_NODE_MIN_OFFSET: - if(bg_list) { - itr = list_iterator_create(bg_list); - bg_record = (bg_record_t *)list_next(itr); - list_iterator_destroy(itr); + if((*nodes) == 1) { + /* Job will actually get more than one c-node, + * but we can't be sure exactly how much so we + * don't scale up this value. */ + break; } - if(!bg_record || - (bg_record->cpus_per_bp == procs_per_node)) - (*nodes) *= bluegene_bp_node_cnt; - else - (*nodes) *= bg_record->node_cnt; + (*nodes) *= bluegene_bp_node_cnt; break; case SELECT_APPLY_NODE_MAX_OFFSET: - if(bg_list) { - itr = list_iterator_create(bg_list); - while ((bg_record = (bg_record_t *) - list_next(itr)) != NULL) - found_record = bg_record; - list_iterator_destroy(itr); - } - if(!found_record || - (found_record->cpus_per_bp == procs_per_node)) - (*nodes) *= bluegene_bp_node_cnt; - else - (*nodes) *= found_record->node_cnt; + (*nodes) *= bluegene_bp_node_cnt; break; case SELECT_SET_NODE_CNT: select_g_get_jobinfo(job_desc->select_jobinfo, diff --git a/src/slurmctld/partition_mgr.c b/src/slurmctld/partition_mgr.c index a306e62e9dec412237ae21da3346337a06e02c3b..56fd226ca7d440ff24c70d0747b758422b40ba93 100644 --- a/src/slurmctld/partition_mgr.c +++ b/src/slurmctld/partition_mgr.c @@ -711,8 +711,8 @@ void pack_part(struct part_record *part_ptr, Buf buffer) &altered); pack32((uint32_t)altered, buffer); altered = part_ptr->min_nodes; - /* select_g_alter_node_cnt(SELECT_APPLY_NODE_MIN_OFFSET, */ -/* &altered); */ + select_g_alter_node_cnt(SELECT_APPLY_NODE_MIN_OFFSET, + &altered); pack32((uint32_t)altered, buffer); altered = part_ptr->total_nodes; select_g_alter_node_cnt(SELECT_APPLY_NODE_MAX_OFFSET,