--- e74d0a2eb1cf4d9921b0720039c6696e42fc3062 +++ 6cb1fcbfdc4bcd363ad717e7de25454597c2e67a @@ -28,6 +28,7 @@ Contents: 2.3 Userspace 2.4 Ondemand 2.5 Conservative +2.6 SmartassV2 3. The Governor Interface in the CPUfreq Core @@ -193,6 +194,38 @@ governor but for the opposite direction. default value of '20' it means that if the CPU usage needs to be below 20% between samples to have the frequency decreased. +2.6 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 =============================================