From 0b3b0caf5d855e47b12b12ed61fd83c4379302eb Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Wed, 26 Feb 2014 16:38:50 -0800 Subject: [PATCH] Fix core_spec support with Shared=yes partition If a partition was configured with Shared=yes, then submitting a job with --core-spec option failed to allocate the node exclusively to that job. --- src/slurmctld/job_mgr.c | 5 ++++- src/slurmctld/node_scheduler.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 8124b6c3467..c42d806cf5a 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -5520,8 +5520,11 @@ _copy_job_desc_to_job_record(job_desc_msg_t * job_desc, } if (job_desc->contiguous != (uint16_t) NO_VAL) detail_ptr->contiguous = job_desc->contiguous; - if (job_desc->core_spec != (uint16_t) NO_VAL) + if (job_desc->core_spec != (uint16_t) NO_VAL) { detail_ptr->core_spec = job_desc->core_spec; + if (job_desc->core_spec) + detail_ptr->whole_node = 1; + } if (job_desc->task_dist != (uint16_t) NO_VAL) detail_ptr->task_dist = job_desc->task_dist; if (job_desc->cpus_per_task != (uint16_t) NO_VAL) diff --git a/src/slurmctld/node_scheduler.c b/src/slurmctld/node_scheduler.c index 5c5a74d9c8c..fe2cfc7dbb7 100644 --- a/src/slurmctld/node_scheduler.c +++ b/src/slurmctld/node_scheduler.c @@ -695,7 +695,8 @@ _resolve_shared_status(struct job_record *job_ptr, uint16_t part_max_share, return 1; if (cons_res_flag) { - if (job_ptr->details->share_res == 0) + if ((job_ptr->details->share_res != 1) || /* 0 or NO_VAL */ + (job_ptr->details->whole_node == 1)) return 0; return 1; } else { -- GitLab