Commit Graph

3 Commits

Author SHA1 Message Date
Todd Poynor
7304611fc3 cpufreq: interactive: Changes to interactive governor
Changes include:
* May scale up to intermediate speeds after scaling down, rather than
scale to max speed and then only scale down until max speed needed.

* Tweaked thresholds at which max speed requested (previously CPU must
have been 100% busy since idle exit timer started, now will go max if at
least 85% busy) and default minimum sample time raised to 80ms. Tweaking
based on UI tests, still in progress.

* SMP fixes.

* Fixed attempted multiple delete of sysfs group on governor stop.
Set a just-in-case-CPU-goes-busy-again timer even if nr_running == 0 at
timer function run time, but cancel if that CPU goes idle (and don't
re-arm timer if that CPU is currently idle).

* Re-evaluate speed if a CPU goes idle while above min speed (and no timer
currently set) in case the platform requires all CPUs to be at the same
speed.

* Realtime workqueues disappeared upstream, convert speed up workqueue to
a realtime task. Average scheduling latency measured significantly less
than WQ_HIGHPRI.

* Timers are not deferrable, must wake CPU from idle, since we now
re-evaluate speed for idle CPUs.

* CPU load is computed from higher of short-term load since idle exit vs.
long-term load since last frequency change, to avoid dropping speed
during temporary dips in load on long-term-busy CPU.

* Avoid 1 CPU starting new idle exit load eval interval in a race with
timer running on another CPU.

* New fugly debugging printfs should be reworked or go away eventually.

Change-Id: I606b5c1850637c35a7814309df12362d5c044825
via: https://review.source.android.com//#change,15809
2010-11-18 12:26:12 +11:00
Jon Benson
0fdd7cede4 Added interactive governor and options for Overclocking and Undervolting. 2010-09-27 16:36:50 +10:00
Markinus
e34adb00cb Add EVOs source as default 2010-08-27 11:19:57 +02:00