From b36f83cff46b0dc804e8b1ab7e2d4a92fe2ea339 Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Mon, 28 Apr 2014 09:21:05 -0700
Subject: [PATCH] Honor partition priorities over job priorities.

Previously partition priority was only considered when used as a
component of a job's priority with the priority/multifactor plugin.
Now the partition priority is considered first, as documented,
and the job priority is considered second.
bug 764
---
 NEWS                          | 1 +
 src/slurmctld/job_scheduler.c | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/NEWS b/NEWS
index dfca98d3f2a..c74c6457bb5 100644
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,7 @@ documents those changes that are of interest to users and admins.
  -- Handle when trying to cancel a step that hasn't started yet better.
  -- Handle Max/GrpCPU limits better
  -- Add --priority option to salloc, sbatch and srun commands.
+ -- Honor partition priorities over job priorities.
 
 * Changes in Slurm 14.03.1-2
 ==========================
diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index 0d4a6a91cdc..7b04507ceaa 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -1395,6 +1395,15 @@ extern int sort_job_queue2(void *x, void *y)
 	if (!has_resv1 && has_resv2)
 		return 1;
 
+	if (job_rec1->part_ptr && job_rec2->part_ptr) {
+		p1 = job_rec1->part_ptr->priority;
+		p2 = job_rec2->part_ptr->priority;
+		if (p1 < p2)
+			return 1;
+		if (p1 > p2)
+			return -1;
+	}
+
 	if (job_rec1->job_ptr->part_ptr_list &&
 	    job_rec1->job_ptr->priority_array)
 		p1 = job_rec1->priority;
-- 
GitLab