From bdb51ea6ba71a3e17f81124527552de9a242dcc6 Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Fri, 14 May 2010 16:39:31 +0000 Subject: [PATCH] fix bug in select/linear caused by added gres support --- src/plugins/select/linear/select_linear.c | 31 ++++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/select/linear/select_linear.c b/src/plugins/select/linear/select_linear.c index 62a6bb4e704..30024f78be8 100644 --- a/src/plugins/select/linear/select_linear.c +++ b/src/plugins/select/linear/select_linear.c @@ -673,6 +673,24 @@ static int _job_count_bitmap(struct cr_record *cr_ptr, cpu_cnt = node_ptr->config_ptr->cpus; else 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) { alloc_mem = cr_ptr->nodes[i].alloc_memory; if (select_fast_schedule) { @@ -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) { /* already reserved by some exclusive job */ bit_clear(jobmap, i); @@ -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++) { select_nodeinfo_t *nodeinfo; - node_ptr = &(node_record_table_ptr[i]); + node_ptr = node_record_table_ptr + i; nodeinfo = node_ptr->select_nodeinfo->data; if ((node_ptr->node_state & NODE_STATE_COMPLETING) || -- GitLab