Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Bug fix for incorrectly handling implicit exclusivity #502
This PR fixes a bug where an implicit resource exclusivity created by slot is incorrectly handled.
Problem: When we have some sub-resources under the visiting resource have been allocated to another job, we can prune the further walk even though the visiting resource itself has not been exclusively allocated to another job. But it appears
Problem: When we have some sub-resources under the visiting resource allocated to another job, we can prune the further walk even though the visiting resource itself has not been exclusively allocated to another job. It appears by_excl does not factor into account the implicit exclusivity that can arise from slot: e.g., with slot->socket->core, sockets and cores under slots are implicitly exclusive. As a result, we end up exclusively allocating partially allocated resources. This is incorrect. Augment dfu_impl_t::by_excl() to fix this issue.
Add cases where once all of the sockets have been exclusively allocated, no other jobs can be scheduled even though there are cores that have not been allocated.
@@ Coverage Diff @@ ## master #502 +/- ## ========================================== - Coverage 75.56% 75.52% -0.05% ========================================== Files 60 60 Lines 6156 6161 +5 ========================================== + Hits 4652 4653 +1 - Misses 1504 1508 +4