At LPC we layed out a plan on how a single scheduler can be used to manage the conflicting and diverse requirements of workloads that can run on a single machine, and how we can make this be portable to hopefully Just Work on all other machines.
The major problem is that heuristics can’t be used to fix this. We need to provide mechanisms to allow for smarter management of system resources.
But how this should look like?
First pitfall is that this is NOT a kernel space interface problem. It is a userspace management problem. We need a higher level description of tasks behavior that with the help of an all knowing Perf Manager can be translated into the right attributes at kernel level.
schedqos utility was created to execute on this plan. It is in alpha stage, but pretty much usable for power users and to help iterate and develop the concepts further.
We picked an existing industry high level description that is successful in practice as initial guide to grow (if needed) on.
To counter the adoption problem of introducing new APIs and circumvent the ABI issue of having to support potentially kernel interfaces forever, we propose a zero API approach. No binary has to ship to take advantage of the proposal. Apps are described in config files which the Perf Manager reads and apply immediately for all instances of an application that are running, and any new one when executed.
The devil is in many details though. This talk will provide a quick overview of what was proposed and discussed, what is next and how can we cultivate help to grow this to become The Way to manage performance and power on all systems and workloads. We will cover use cases and examples of how it should all ultimately fit together.