Add implementation of packed core alloc strategy
authorKevin Klues <klueska@cs.berkeley.edu>
Tue, 6 Oct 2015 02:42:22 +0000 (19:42 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 13 Dec 2017 20:22:08 +0000 (15:22 -0500)
commit5d437859591bb08eaadefb207fa97d39b1fff194
treec955ac9dc0780719d2714f501207e9af6b741d17
parentb718830b1ff27ec72dcb939ddf10f8e193ad03ac
Add implementation of packed core alloc strategy

This core allocation strategy attempts to hand out cores to a process
based on the underlying topology of the machine. It's strategy is based
on trying to pack cores as tightly as possible when handing out cores to
a process.

The first time a process requests a core, the algorithm will try to find
an idle core as far away as possible from all other allocated cores on
the machine. Once the first core is established, subsequent requests
will try and pack cores as tightly as possible to cores it already owns.
Cores from a proc's list of provisioned cores are preferentially chosen,
followed by the remaining idle cores in the system.

The core allocation strategy to use can be chosen as a makeconfig
variable.

Signed-off-by: Kevin Klues <klueska@cs.berkeley.edu>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
Kconfig
kern/include/corealloc_packed.h [new file with mode: 0644]
kern/include/corerequest.h
kern/src/Kbuild
kern/src/corealloc_packed.c [new file with mode: 0644]