From 2005a5940a5e392607bd65b954ccbc17359c1dd3 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 25 Jan 2011 18:42:20 +0000
Subject: [PATCH] properly handle situation where a node is configured with
 CPUS = SOCKETS * CORES but THREADS != 1 in that case, reset select/cons_res
 internal node table to thread count = 1

---
 src/plugins/select/cons_res/select_cons_res.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/plugins/select/cons_res/select_cons_res.c b/src/plugins/select/cons_res/select_cons_res.c
index d38d6d4ef08..52f03969232 100644
--- a/src/plugins/select/cons_res/select_cons_res.c
+++ b/src/plugins/select/cons_res/select_cons_res.c
@@ -1690,7 +1690,7 @@ extern int select_p_job_init(List job_list)
  */
 extern int select_p_node_init(struct node_record *node_ptr, int node_cnt)
 {
-	int i;
+	int i, tot_core;
 
 	info("cons_res: select_p_node_init");
 	if (node_ptr == NULL) {
@@ -1733,6 +1733,10 @@ extern int select_p_node_init(struct node_record *node_ptr, int node_cnt)
 			select_node_record[i].real_memory = node_ptr[i].
 				real_memory;
 		}
+		tot_core = select_node_record[i].sockets *
+			   select_node_record[i].cores;
+		if (tot_core >= select_node_record[i].cpus)
+			select_node_record[i].vpus = 1;
 		select_node_usage[i].node_state = NODE_CR_AVAILABLE;
 		gres_plugin_node_state_dealloc_all(select_node_record[i].
 						   node_ptr->gres_list);
-- 
GitLab