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.

Reply via email to