diff --git a/src/plugins/select/cons_res/job_test.c b/src/plugins/select/cons_res/job_test.c index 778e7c6c1273324f3061ed2357212bb62cecf87f..555565dcd22c463b4889b83a0df7d0e25206ad9f 100644 --- a/src/plugins/select/cons_res/job_test.c +++ b/src/plugins/select/cons_res/job_test.c @@ -2318,9 +2318,20 @@ extern int cr_job_test(struct job_record *job_ptr, bitstr_t *node_bitmap, /* remove existing allocations (jobs) from higher-priority partitions * from avail_cores */ + if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { + info("cons_res: cr_job_test: looking for higher-priority or " + "PREEMPT_MODE_OFF part's to remove from avail_cores"); + } + for (p_ptr = cr_part_ptr; p_ptr; p_ptr = p_ptr->next) { - if (p_ptr->part_ptr->priority <= jp_ptr->part_ptr->priority) + if ((p_ptr->part_ptr->priority <= jp_ptr->part_ptr->priority) && + (p_ptr->part_ptr->preempt_mode != PREEMPT_MODE_OFF)) { + if (select_debug_flags & DEBUG_FLAG_CPU_BIND) { + info("cons_res: cr_job_test: continuing on " + "part: %s ", p_ptr->part_ptr->name); + } continue; + } if (!p_ptr->row) continue; for (i = 0; i < p_ptr->num_rows; i++) { diff --git a/src/plugins/select/serial/job_test.c b/src/plugins/select/serial/job_test.c index 17fc1c4b29d89480cb9d79f0177ef9b27d97bd00..ed868ea552ccbf9862bd09675725a89994601af8 100644 --- a/src/plugins/select/serial/job_test.c +++ b/src/plugins/select/serial/job_test.c @@ -656,7 +656,8 @@ extern int cr_job_test(struct job_record *job_ptr, bitstr_t *bitmap, int mode, /* remove existing allocations (jobs) from higher-priority partitions * from avail_cores */ for (p_ptr = cr_part_ptr; p_ptr; p_ptr = p_ptr->next) { - if (p_ptr->part_ptr->priority <= jp_ptr->part_ptr->priority) + if ((p_ptr->part_ptr->priority <= jp_ptr->part_ptr->priority) && + (p_ptr->part_ptr->preempt_mode != PREEMPT_MODE_OFF)) continue; if (!p_ptr->row) continue;