--- 51b1cd360c3363e6d4f5ee077722bff49cf18ca2 +++ 07936af6c76bf4a1483f83d4663602567348a8e1 @@ -29,6 +29,7 @@ Contents: 2.4 Ondemand 2.5 Conservative 2.6 Interactive +2.7 SmartassV2 3. The Governor Interface in the CPUfreq Core @@ -231,6 +232,38 @@ is 85. timer_rate: Sample rate for reevaluating cpu load when the system is not idle. Default is 30000 uS. +2.7 SmartassV2 +--------------- + +The CPUfreq governor "smartassV2", like other governors, aims to balance +performance vs battery life by using low frequencies when load is low and +ramping the frequency when necessary, fast enough to ensure responsiveness. + +The implementation of the governor is roughtly based on the idea of interactive. +The idle loop is used to track when the CPU has idle cycles. The idle loop will +set a relatively high rate timer to sample the load when appropriate, the timer +will measure the load since it was set and schedule a work queue task to do the +actual frequency change when necessary. + +The most important tunable is the "ideal" frequency: this governor will aim +for this frequency, in the sense that it will ramp towards this frequency much +more aggresively than beyond it - both when ramping up from below this frequency +and when ramping down from above this frequency. Still, note, that when load is +low enough the governor should choose the lowest available frequency regardless +of the ideal frequency and similarly when load is consistently high enough the +highest available frequency will be used. + +Smartass also tracks the state of the screen, and when screen is off (a.k.a +sleep or suspended in the terms of this governor) a different ideal frequency +is used. This is the only difference between the screen on and screen off +states. Proper tuning of the awake_ideal_freq and sleep_ideal_freq should +allow both high responsiveness when screen is on and utilizing the low +frequency range when load is low, especially when screen is off. + +Finally, smartass is a highly customizable governor with almost everything +tweakable through the sysfs. For a detailed explaination of each tunable, +please see the inline comments at the begging of the code (smartass2.c). + 3. The Governor Interface in the CPUfreq Core =============================================