added wheatley governor
added hotplug governor
added Scary governor
added SavagedZen governot
Working of governers
WHEATLEY:- this is yet another governor for the users who want to save battery as much as they can
The governor intelligently set the frequencies according the usage of the CPU, if the usage is high then frequency will also be high and when usage is low it will set the low frequency
This governor is made by doing changes in the ondemand governor and can be used in the place of conservative
HOTPLUG:- The “hotplug” governor scales CPU frequency based on load, similar to“ondemand”. It scales up to the highest frequency when “up_threshold”is crossed and scales down one frequency at a time when “down_threshold”is crossed. Unlike those governors, target frequencies are determinedby directly accessing the CPUfreq frequency table, instead of takingsome percentage of maximum available frequency.
The key difference in the “hotplug” governor is that it will disableauxillary CPUs when the system is very idle, and enable them again oncethe system becomes busy. This is achieved by averaging load overmultiple sampling periods; if CPUs were online or offlined based on asingle sampling period then thrashing will occur
Sysfs entries exist for “hotplug_in_sampling_periods” and for“hotplug_out_sampling_periods” which determine how many consecutiveperiods get averaged to determine if auxillery CPUs should be onlined orofflined. Defaults are 5 periods and 20 periods respectively.Otherwise the standard sysfs entries you might find for “ondemand” and“conservative” governors are there.
LIONHEARTX:- LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
LIONHEART:- Lionheart is a conservative-based governor which is based on samsung's update3 source. Tweaks comes from 1) Knzo 2) Morfic. The original idea comes from Netarchy. See here. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
SCARY:- This is just a weird governor. It's based on Conservative which has a slower ramping than Ondemand butthen again it has Smartass elements which is a governor with one the fastest rampings.
SAVAGED ZEN:- Another Smartass-based kernel with many modifications aiming to attain both better battery and performance.
LULZACTIVE:- This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites. When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
INTELLIDEMAND:- Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some usersbelieve, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPUis really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode.
ONDEMAND X:- governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic. No further optimization is done.
ONDEMAND:- Available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point (see “up threshold” in Advanced Settings), ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
INTERACTIVE:- Available in newer kernels, and becoming the default scaling option in some official Android kernels. The interactive governor is functionally similar to theondemand governor with an even greater focus on responsiveness.
CONSERVATIVE:- Available in some kernels. It is similar to the ondemand governor, but will scale the CPU up more gradually to better fit demand. Conservative provides a less responsive experience than ondemand, but can save battery.
PERFORMANCE:- Available in most kernels. It will keep the CPU running at the “max” set value at all times. This is a bit more efficient than simply setting “max” and “min” to thesame value and using ondemand because the system will not waste resources scanning for CPU load.
POWERSAVE:- Available in some kernels. It will keep the CPU running at the “min” set value at all times.
USERSPACE:- A method for controllingthe CPU speed that isn't currently used by SetCPU. For best results, donot use the userspace governor.
SAMRTASS:- Included in some customkernels. The smartass governor effectively gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.
ALWAYS MAX:- The Performance “governor”, called “Always Max” on previous versions of SetCPU, allows your phone to run at maximum speed, ignoring all power saving functions.
SMOOTHASS:- The same as the Smartass “governor” But MUCH moreaggressive & across the board this one has a better battery life that is about a third better than stock KERNEL.
INTERACTIVEX:- The same thing as interactive but it clocks the cpu downto 300mhz in sleep mode.
SMARTASS V2:- Is a re-working of the original smartass governor, it allows for the CPU to scale through all frequencies from the lowest you set to the highest, based on the load occuring. Basically it scales CPU based on realtime needs of the system, saV2 supposedly incorporates some more agressive settings for screen off, and I believe quicker scaling than the original smartass.
BRAZILIANWAX:- Similar to smartassV2. More aggressive ramping, so more performance, less battery.
LAG FREE:- This driver is rather similar to the 'ondemand' governor both in its source code and its purpose, the difference is its optimization for better suitability in a battery powered environment. The frequencyis gracefully increased and decreased rather than jumping to 100% when speed is required.
MIN/MAX:- stays at minimum speed until more speed is needed then goes straight to highest speed.