On Tue, Oct 21, 2014 at 11:07:31PM -0700, Mike Turquette wrote:
Unlike legacy CPUfreq governors, this policy does not implement its own logic loop (such as a workqueue triggered by a timer), but instead uses an event-driven design. Frequency is evaluated by entering {en,de}queue_task_fair and then a kthread is woken from run_rebalance_domains which scales cpu frequency based on the latest evaluation.
Also note that we probably want to extend the governor to include the other sched classes, deadline for example is a good candidate to include as it already explicitly provides utilization requirements from which you can compute a hard minimum frequency, below which the task set is unschedulable.
fifo/rr are far harder to do, since for them we don't have anything useful, the best we can do I suppose is some statistical over provisioning but no guarantees.