[$] Coscheduling: simultaneous scheduling in control groups
The kernel's CPU scheduler must, as its primary task, determine whichprocess should be executing in each of a system's processors at any giventime. Making an optimal decision involves juggling a number offactors, including the priority (and scheduling classes) of the runnableprocesses, NUMA locality, cache locality, latency minimization,control-group policies, power management, overall fairness, and more. Onemight think that throwing another variable into the mix - and a complex oneat that - would not be something anybody would want to attempt. The recentcoschedulingpatch set from Jan Schinherr does exactly that, though, by introducingthe concept of processes that should be run simultaneously.