|
Lines 611-617
static int _attempt_backfill(void)
Link Here
|
| 611 |
uint32_t min_nodes, max_nodes, req_nodes; |
611 |
uint32_t min_nodes, max_nodes, req_nodes; |
| 612 |
bitstr_t *avail_bitmap = NULL, *resv_bitmap = NULL; |
612 |
bitstr_t *avail_bitmap = NULL, *resv_bitmap = NULL; |
| 613 |
bitstr_t *exc_core_bitmap = NULL, *non_cg_bitmap = NULL; |
613 |
bitstr_t *exc_core_bitmap = NULL, *non_cg_bitmap = NULL; |
| 614 |
bitstr_t *previous_bitmap = NULL; |
|
|
| 615 |
time_t now, sched_start, later_start, start_res, resv_end, window_end; |
614 |
time_t now, sched_start, later_start, start_res, resv_end, window_end; |
| 616 |
node_space_map_t *node_space; |
615 |
node_space_map_t *node_space; |
| 617 |
struct timeval bf_time1, bf_time2; |
616 |
struct timeval bf_time1, bf_time2; |
|
Lines 915-921
static int _attempt_backfill(void)
Link Here
|
| 915 |
|
914 |
|
| 916 |
/* Determine impact of any resource reservations */ |
915 |
/* Determine impact of any resource reservations */ |
| 917 |
later_start = now; |
916 |
later_start = now; |
| 918 |
FREE_NULL_BITMAP(previous_bitmap); |
|
|
| 919 |
TRY_LATER: |
917 |
TRY_LATER: |
| 920 |
if (slurmctld_config.shutdown_time) |
918 |
if (slurmctld_config.shutdown_time) |
| 921 |
break; |
919 |
break; |
|
Lines 1024-1045
static int _attempt_backfill(void)
Link Here
|
| 1024 |
((job_ptr->details->req_node_bitmap) && |
1022 |
((job_ptr->details->req_node_bitmap) && |
| 1025 |
(!bit_super_set(job_ptr->details->req_node_bitmap, |
1023 |
(!bit_super_set(job_ptr->details->req_node_bitmap, |
| 1026 |
avail_bitmap))) || |
1024 |
avail_bitmap))) || |
| 1027 |
(job_req_node_filter(job_ptr, avail_bitmap)) || |
1025 |
(job_req_node_filter(job_ptr, avail_bitmap))) { |
| 1028 |
(previous_bitmap && |
|
|
| 1029 |
bit_equal(previous_bitmap, avail_bitmap))) { |
| 1030 |
if (later_start) { |
1026 |
if (later_start) { |
| 1031 |
job_ptr->start_time = 0; |
1027 |
job_ptr->start_time = 0; |
| 1032 |
goto TRY_LATER; |
1028 |
goto TRY_LATER; |
| 1033 |
} |
1029 |
} |
|
|
1030 |
|
| 1034 |
/* Job can not start until too far in the future */ |
1031 |
/* Job can not start until too far in the future */ |
| 1035 |
job_ptr->time_limit = orig_time_limit; |
1032 |
job_ptr->time_limit = orig_time_limit; |
| 1036 |
job_ptr->start_time = sched_start + backfill_window; |
1033 |
job_ptr->start_time = sched_start + backfill_window; |
| 1037 |
continue; |
1034 |
continue; |
| 1038 |
} |
1035 |
} |
| 1039 |
|
1036 |
|
| 1040 |
FREE_NULL_BITMAP(previous_bitmap); |
|
|
| 1041 |
previous_bitmap = bit_copy(avail_bitmap); |
| 1042 |
|
| 1043 |
/* Identify nodes which are definitely off limits */ |
1037 |
/* Identify nodes which are definitely off limits */ |
| 1044 |
FREE_NULL_BITMAP(resv_bitmap); |
1038 |
FREE_NULL_BITMAP(resv_bitmap); |
| 1045 |
resv_bitmap = bit_copy(avail_bitmap); |
1039 |
resv_bitmap = bit_copy(avail_bitmap); |
|
Lines 1215-1221
static int _attempt_backfill(void)
Link Here
|
| 1215 |
FREE_NULL_BITMAP(exc_core_bitmap); |
1209 |
FREE_NULL_BITMAP(exc_core_bitmap); |
| 1216 |
FREE_NULL_BITMAP(resv_bitmap); |
1210 |
FREE_NULL_BITMAP(resv_bitmap); |
| 1217 |
FREE_NULL_BITMAP(non_cg_bitmap); |
1211 |
FREE_NULL_BITMAP(non_cg_bitmap); |
| 1218 |
FREE_NULL_BITMAP(previous_bitmap); |
|
|
| 1219 |
|
1212 |
|
| 1220 |
for (i=0; ; ) { |
1213 |
for (i=0; ; ) { |
| 1221 |
FREE_NULL_BITMAP(node_space[i].avail_bitmap); |
1214 |
FREE_NULL_BITMAP(node_space[i].avail_bitmap); |