Skip to content
Snippets Groups Projects
Commit bdb51ea6 authored by Moe Jette's avatar Moe Jette
Browse files

fix bug in select/linear caused by added gres support

parent 2c99c42a
No related branches found
No related tags found
No related merge requests found
...@@ -673,6 +673,24 @@ static int _job_count_bitmap(struct cr_record *cr_ptr, ...@@ -673,6 +673,24 @@ static int _job_count_bitmap(struct cr_record *cr_ptr,
cpu_cnt = node_ptr->config_ptr->cpus; cpu_cnt = node_ptr->config_ptr->cpus;
else else
cpu_cnt = node_ptr->cpus; cpu_cnt = node_ptr->cpus;
if (cr_ptr->nodes[i].gres_list)
gres_list = cr_ptr->nodes[i].gres_list;
else
gres_list = node_ptr->gres_list;
gres_cpus = gres_plugin_job_test(job_ptr->gres_list,
gres_list, use_total_gres);
if ((gres_cpus != NO_VAL) && (gres_cpus < cpu_cnt)) {
bit_clear(jobmap, i);
continue;
}
if (mode == SELECT_MODE_TEST_ONLY) {
bit_set(jobmap, i);
count++;
continue; /* No need to test other resources */
}
if (job_memory_cpu || job_memory_node) { if (job_memory_cpu || job_memory_node) {
alloc_mem = cr_ptr->nodes[i].alloc_memory; alloc_mem = cr_ptr->nodes[i].alloc_memory;
if (select_fast_schedule) { if (select_fast_schedule) {
...@@ -694,17 +712,6 @@ static int _job_count_bitmap(struct cr_record *cr_ptr, ...@@ -694,17 +712,6 @@ static int _job_count_bitmap(struct cr_record *cr_ptr,
} }
} }
if (cr_ptr->nodes[i].gres_list)
gres_list = cr_ptr->nodes[i].gres_list;
else
gres_list = node_ptr->gres_list;
gres_cpus = gres_plugin_job_test(job_ptr->gres_list,
gres_list, use_total_gres);
if ((gres_cpus != NO_VAL) && (gres_cpus < cpu_cnt)) {
bit_clear(jobmap, i);
continue;
}
if (cr_ptr->nodes[i].exclusive_cnt != 0) { if (cr_ptr->nodes[i].exclusive_cnt != 0) {
/* already reserved by some exclusive job */ /* already reserved by some exclusive job */
bit_clear(jobmap, i); bit_clear(jobmap, i);
...@@ -2611,7 +2618,7 @@ extern int select_p_select_nodeinfo_set_all(time_t last_query_time) ...@@ -2611,7 +2618,7 @@ extern int select_p_select_nodeinfo_set_all(time_t last_query_time)
for (i=0; i<node_record_count; i++) { for (i=0; i<node_record_count; i++) {
select_nodeinfo_t *nodeinfo; select_nodeinfo_t *nodeinfo;
node_ptr = &(node_record_table_ptr[i]); node_ptr = node_record_table_ptr + i;
nodeinfo = node_ptr->select_nodeinfo->data; nodeinfo = node_ptr->select_nodeinfo->data;
if ((node_ptr->node_state & NODE_STATE_COMPLETING) || if ((node_ptr->node_state & NODE_STATE_COMPLETING) ||
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment