Considering that to the kernel VMs are mostly opaque pieces of code running on vCPUs,how is Linux able to schedule the workloads equitably?
Does it blindly round robin them? That seems like it could degrade overall system throughput pretty badly. I mean, Linux may end up giving same priority (time) to idle threads in some VMs as threads actually doing useful work in other VMs.
What kind of scheduling algorithm works well for this? Or maybe the VM framework provides inputs that help with scheduling somehow.