Skip to content
Snippets Groups Projects
Commit a260397a authored by Morris Jette's avatar Morris Jette
Browse files

Fix for socket allocations and specialized cores

Previous logic would prevent allocation of sockets to a job unless the
entire socket was available. If there were any specialized cores, the
socket was treated as being not available and unusable. For example,
if a node had 2 sockets, then a job requesting 2 specialized cores
would reserve one core on each of the two sockets and render the job
not runnable.
parent 5e08b4d1
No related branches found
No related tags found
No related merge requests found
......@@ -217,6 +217,11 @@ static uint16_t _allocate_sc(struct job_record *job_ptr, bitstr_t *core_map,
uint16_t ncpus_per_core = 0xffff; /* Usable CPUs per core */
uint32_t free_cpu_count = 0, used_cpu_count = 0, *used_cpu_array = NULL;
if (entire_sockets_only && job_ptr->details->whole_node &&
(job_ptr->details->core_spec != (uint16_t) NO_VAL)) {
/* Ignore specialized cores when allocating "entire" socket */
entire_sockets_only = false;
}
if (job_ptr->details && job_ptr->details->mc_ptr) {
uint32_t threads_per_socket;
multi_core_data_t *mc_ptr = job_ptr->details->mc_ptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment