Hey,
I'm looking at implementing a mechanism for providing more CPU slots for
virtual machines. Something similar could also apply to memory, for
example with Kernel Samepage Merging, but the risk of random VMs getting
killed because memory is exhausted is rather high. Overprovisioning CPU
though could be beneficial to users who may not mind the interference of
other workloads.
Here's a table I thought of how the (primitive) scheduler could act,
based on the current state of the host, and the arriving work (let's say
it has a "Sharing OK" bit).
sharing ok sharing not ok
current state
empty admit admit
some shared admit deny (1)
some unshared deny (1) admit
full shared admit deny
full unshared deny deny
Note 1: If shared cores can't be isolated from private cores.
I'd be grateful for comments.
Thanks,
Michael.