From a3e74ef295ceb2ade23778597720ed6d6f402212 Mon Sep 17 00:00:00 2001 From: Morris Jette <jette@schedmd.com> Date: Fri, 28 Feb 2014 12:44:48 -0800 Subject: [PATCH] preempt/qos - preempt job order The job preemption order was based upon the lowest 16 bits of a QOS priority, but the field holds 32 bits. This uses a value of 0xffff if the QOS priority is higher. --- src/plugins/preempt/qos/preempt_qos.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/plugins/preempt/qos/preempt_qos.c b/src/plugins/preempt/qos/preempt_qos.c index af01632b1c2..6057fd2bb86 100644 --- a/src/plugins/preempt/qos/preempt_qos.c +++ b/src/plugins/preempt/qos/preempt_qos.c @@ -153,9 +153,12 @@ static uint32_t _gen_job_prio(struct job_record *job_ptr) uint32_t job_prio; slurmdb_qos_rec_t *qos_ptr = job_ptr->qos_ptr; - if (qos_ptr) - job_prio = (qos_ptr->priority & 0xffff) << 16; - else + if (qos_ptr) { + if (qos_ptr->priority > 0xffff) + job_prio = 0xffff << 16; + else + job_prio = (qos_ptr->priority & 0xffff) << 16; + } else job_prio = 0; if (job_ptr->node_cnt >= 0xffff) -- GitLab