Ok guys, this is going to be a long post but I think in the end, it will put a lot of good information to everyone to help them understand kernels a little better. I may not have a machine to be able to develop but I do know quite a bit of stuff lol. Anyway, here's a thread to inform everyone about the different sections of kernels.
First I would like to give some "thanks."
mtmichaelson - for giving us this badass 1.9gHz kernel to play with and for doing soooooo much for development! We are forever in your debt.
droidphile - for teaching me just about everything I know.
*I'm sure there are more people and if I missed you, let me know!*
First, let's start with "governors."
OnDemand:
The default governor in almost all stock kernels. One main goal of the ondemand governor is to switch to max frequency as soon as CPU activity is detected to ensure the responsiveness of the system. Effectively, it uses the CPU busy time as the answer to the "how critical is performance right now" question. So Ondemand jumps to maximum frequency when CPU is busy and decreases the frequency gradually when CPU is less loaded/apporaching idle. Even though many of us consider this a reliable governor, it falls short on battery saving and performance on default settings. One potential reason for ondemand governor being not very power efficient is that the governor decides the next target frequency by instant requirement during sampling interval. The instant requirement can respond quickly to workload change, but it does not usually reflect workload real CPU usage requirement in a longer time and it possibly causes frequent changes between highest and lowest frequency.
Conservative:
A slower Ondemand which scales up slowly to save battery. The conservative governor is based on the ondemand governor. It functions like the Ondemand governor by dynamically adjusting frequencies based on processor utilization. However, the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle. Conservative governor aims to dynamically adjust the CPU frequency to current utilization, without jumping to max frequency. The sampling_down_factor value acts as a negative multiplier of sampling_rate to reduce the frequency that the scheduler samples the CPU utilization. For example, if sampling_rate was equal to 20,000 and sampling_down_factor is 2, the governor samples the CPU utilization every 40,000 microseconds.
Smartass2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many people. The governor aims for an "ideal frequency", and ramps up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
Userspace:
Instead of automatically determining frequencies, it lets the user set the frequencies.
Powersave:
Locks max frequency to min frequency. Can not be used as a screen-on or even screen-off (if scaling min frequency is too low).
Performance:
Sets min frequency as max frequency. Very useful while benchmarking!
Smoothass:
The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL.
Now for the "schedulers."
Noop:
Inserts all the incoming I/O requests to a "First In First Out" queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like a flash drive). Advantage here is that flash drives do not require reordering of multiple I/O requests unlike in normal hard drives.
*Advantages*1. Serves I/O requests with least number of cpu cycles. (Battery friendly?)
2. Best for flash drives since there is no seeking penalty.
3. Good throughput on db systems.
*Disadvantages*1. Reduction in number of cpu cycles used is proportionate to drop in performance.
Deadline:
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
*Advantages*1. Nearly a real time scheduler.
2. Excels in reducing latency of any given single I/O.
3. Best scheduler for database access and queries.
4. Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
5. Like noop, a good scheduler for solid state/flash drives.
*Disadvantages*1. When the system is overloaded, the set of processes that may miss deadline is largely unpredictable.
CFQ:
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process.
*Advantages*1. Considered to deliver a better balanced i/o performance.
2. Easiest to tune.
3. Excels on multiprocessor systems.
4. Best database system performance after deadline.
*Disadvantages*1. Some users report that media scanning takes longer to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
2. Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
SIO:
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. SIO is a mix between noop & deadline. No reordering or sorting of requests.
*Advantages*1. Simple, very very reliable.
2. Minimized starvation of requests.
*Disadvantages*1. Slow random-read speeds on flash drives, compared to other schedulers.
2. Sequential-read speeds on flash drives also not so good.
============================================================
That's about all I have for now lol. If I can think of anymore stuff to post on here, I'll get it as soon as I get a chance. Thanks for reading!
Reserved for more info!
Thanks!!!
Can you also include information about smoothass?
Missed interactive. Fyi stock gov on this thing. Which is odd and the first time I've ever seen that.
Sent from my Transformer Prime TF201 using xda premium
Haro912 said:
Missed interactive. Fyi stock gov on this thing. Which is odd and the first time I've ever seen that.
Sent from my Transformer Prime TF201 using xda premium
Click to expand...
Click to collapse
Blitzed doesn't have Interactive which is why I left it out. Fyi not the default lol
Sent from my Volted Ice Revo using Tapatalk.
spc_hicks09 said:
Blitzed doesn't have Interactive which is why I left it out. Fyi not the default lol
Sent from my Volted Ice Revo using Tapatalk.
Click to expand...
Click to collapse
By on this thing I was hoping everyone would realize that I was on my Prime at the time. It's the default on there
Haro912 said:
By on this thing I was hoping everyone would realize that I was on my Prime at the time. It's the default on there
Click to expand...
Click to collapse
Oh lol sorry I thought you were talking about the Revo.
Sent from my Volted Ice Revo using Tapatalk.
Thanks for taking the time to explain all of that. I learned a few things.
Sent from my Blitzed supercharged Volted Ice Revo
scyther2333 said:
Thanks!!!
Can you also include information about smoothass?
Click to expand...
Click to collapse
I should be adding stuff about smoothass soon.
Sent from my Volted Ice Revo using Tapatalk.
Excellent thread hicks, thanks for the info!
Sent from my VS910 4G using XDA App
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
scyther2333 said:
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
Click to expand...
Click to collapse
Lol that's pretty much exactly what this thread is.
I second that
Obsidian_soul said:
Thanks for taking the time to explain all of that. I learned a few things.
Sent from my Blitzed supercharged Volted Ice Revo
Click to expand...
Click to collapse
Thanks from me too... very informative.... and appreciated.
St3vi3
Can we get an explanation of smoothass please? I can't seem to find much with a standard google search, well except for some things I'd rather not mention lol
Thanks hicks
Sent from my VS910 4G using XDA App
OP updated with the "short and sweet" descriptive of "Smoothass."
scyther2333 said:
thanks a lot...
don't mean to add more work for you but i think it would be great if you could give an overview of governors and schedulers and how/why they work in android
Click to expand...
Click to collapse
corypwrs said:
Can we get an explanation of smoothass please? I can't seem to find much with a standard google search, well except for some things I'd rather not mention lol
Thanks hicks
Sent from my VS910 4G using XDA App
Click to expand...
Click to collapse
^ This made me laugh my ass off haha. I just pictured someone sitting at maybe a library or some public computer and innocently trying to find info on the "smoothass" governor hahahahaha!
spc_hicks09 said:
^ This made me laugh my ass off haha. I just pictured someone sitting at maybe a library or some public computer and innocently trying to find info on the "smoothass" governor hahahahaha!
Click to expand...
Click to collapse
I wasn't really thinking about it much until the search results came up. Luckily I was on my laptop at home or else it would've been awkward for me lol
Sent from my VS910 4G using XDA App
Just curious, why does, smartass2 and smoothass only utilize stock cpu speeds?
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
SnoeDogg said:
Just curious, why does, smartass2 and smoothass only utilize stock cpu speeds?
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
Click to expand...
Click to collapse
It doesn't. It uses all speeds that I included.
Sent from my VS910 4G using xda premium
mtmichaelson said:
It doesn't. It uses all speeds that I included.
Sent from my VS910 4G using xda premium
Click to expand...
Click to collapse
+1
Most of the descriptions here are for a stock Gingerbread kernel.
Sent from my Dread Ginger Revo using Tapatalk.
I figured it out. Im using CPU Master and i had to set thru the program and then thru the widget for some reason. Thanks
Sent from LG Revo Gingervolt 2.0, Hack the Planet. Using XDA App
Related
*** This project is dead! ***
The CPUfreq governor is responsible for switching between the different CPU frequencies the processor supports. It thus has a critical impact on both the battery runtime as well as the responsiveness of the device.
The two most popular governors which allow a dynamic frequency switching based on the current processor load are 'ondemand' and 'interactive' and I tested both for a few days to compare their performance in different scenarios: While ondemand appears to offer the best battery runtime, the responsiveness is not great which leads to problems during media playback (cracks and stuttering while playing FLACs with stock music app and watching XviD videos with MoboPlayer). On the other hand, with interactive the responsiveness is better, however the frequency scaling appears to be a bit erratic to me and it seems to spend more time in the high frequency states than actually necessary which leads to an increased battery drain. So it seems, both ondemand and interactive each have their own drawbacks and neither one shows a satisfying performance in all scenarios.
Thus I wrote a new governor called 'snappy' based on ondemand implementing the following two improvements: First, instead of using a static sampling rate, the sampling rate is dynamically adjusted depending on the current load; for a uniform load the sampling rate is set to a high value, while for a non-uniform load the time between two samples is decreased. Second, switching to lower frequency states is deferred, which on average allows the CPU to stay in its current state for longer and thus reduces the rate of frequency changes.
The governor can be tuned using three files in the cpufreq sysfs interface 'up_threshold' (default 95), 'down_threshold' (default 40) and 'sampling_rate_max' (default 100000). The current sampling rate is shown in 'sampling_rate_current'.
Changes to the source: http://www.pastie.org/2570142
BUGFIX:
The sampling rate is decreased in 2% steps while it is increased in 1% steps (this should make the sampling rate adjustment more dynamic). Also, the default for the maximum sampling rate is set to 50000.
Bug fix: http://www.pastie.org/2570778
I wrote this governor yesterday and so I did not have much time for testing. Thus your feedback is highly appreciated. Also, I did not play around much with the three parameters - so there is probably much room for improvement.
I do not accept donations and since I reached my 50GB limit of free space on SpiderOak, thanks to all of you kind people who got an account using my referral link, I could not ask for more.
Instead if you really want to donate your hard earned money to someone who deserves and needs it, consider donating to the Free Software Foundation at fsf.org: These guys are at the frontline when it comes to keeping Linux free and fighting these greedy bastards who think they are entitled to collect royalties and other fees from Linux users due to some silly patents - and if Linux falls, Android will be next.
*** This project is dead! ***
nice!
cant wait to try this out
the idea sounds good, i'd like to test it!
have you checked smartass, btw?
Really nice, I hope morfic will implement it in his kernels.
Sent from my Nexus S using XDA App
Sweet I will be watching this.
Sounds cool. Can't wait to be able to try this
Sent from my Nexus S 4G using XDA App
Cool! Nice idea.
Woah sweet.
Maybe this will get people off that "smartass" governor kick everyones been on.
Very nice work man. I particularly like how you make it sound like creating a CPU governor is about as much work as making a grilled cheese haha
igor.tonky said:
the idea sounds good, i'd like to test it!
have you checked smartass, btw?
Click to expand...
Click to collapse
I also checked smartass and it did behave pretty similar to interactive.
kenvan19 said:
Very nice work man. I particularly like how you make it sound like creating a CPU governor is about as much work as making a grilled cheese haha
Click to expand...
Click to collapse
Actually most of the time I have no idea what I am doing. I am just a mad man with a Nexus S.
I made a few adjustments to snappy:
The sampling rate is decreased in 2% steps while it is increased in 1% steps (this should make the sampling rate adjustment more dynamic). Also, the default for the maximum sampling rate is set to 50000.
Bug fix: http://www.pastie.org/2570778
thanks for all your contributions thus far for the NS. looking foward to more of your work!
Is this in essence a conservative governor with a dynamic sampling rate?
morfic said:
Is this in essence a conservative governor with a dynamic sampling rate?
Click to expand...
Click to collapse
No. It still behaves like ondemand when increasing the frequency, i.e. goes to the maximum frequency available. I also thought about that, but I think it makes most sense to keep it this way, because one is on the safe side and will not end up with a frequency which is too low to handle the load because of a bad estimate (which could cause lags) and the frequency will be decreased automatically anyway on the next call. Also, it actually might be better for the battery runtime - keyword race-to-idle.
@Ezekeel: WTF are you doing here mate?!?! You should be working for Google with your innovations. Keep up the good work!
There are also random reboots with ondemand while watching XVID Videos on MoboPlayer or mxVideo Player.
Ezekeel said:
It still behaves like ondemand when increasing the frequency, i.e. goes to the maximum frequency available.
Click to expand...
Click to collapse
um, that's how _interactive_ behaves - jumps to max frequency on load, then samples down.
ondemand goes to next higher frequency, when load is more than up_threshhold.
so yeah, morfic question is correct, and i can't see how you can mix these two.
unless you switch to ondemand logic for uniform load, of course
igor.tonky said:
ondemand goes to next higher frequency, when load is more than up_threshhold.
Click to expand...
Click to collapse
No, that is not correct. When increasing the frequency ondemand always switches to the maximum frequency. Take a look at the source code if you do not believe me.
Smartass is the best imo. Its responsiveness is awesome.
Thank you for sharing it with us, I will take a look as soon as I can. But I write more to thank you for all the other implementations You have already done and I have reviewed more in detail, you are doing a nice work.
KalimochoAz
xmRipper said:
Smartass is the best imo. Its responsiveness is awesome.
Click to expand...
Click to collapse
but useless when you want to use your phone as mp3player ^^
eiabea said:
but useless when you want to use your phone as mp3player ^^
Click to expand...
Click to collapse
amen to that brother
We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV 30mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell. Seems like the sleep frequency fix also took care of the high battery drain.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
BUGFIX #2:
When OC value is changed, the minimum and maximum frequency limits set by the user are adjusted according to the new frequencies.
Bugfix: http://www.pastie.org/2691219
BUGFIX #3:
Made sure the bus speeds and frequencies are not changed while a frequency change is currently ongoing.
Bugfix: http://www.pastie.org/2710098
BUGFIX #4:
Instead of a spin lock (which leads to problems) we use a mutex to make sure the bus and frequencies are not changed while a frequency change is ongoing.
Bugfix: http://www.pastie.org/2710386
BUGFIX #5:
If no mutex lock can be obtained, an error value is returned to inform the caller that the frequency was not changed.
Bugfix: http://www.pastie.org/2746226
BUGFIX #6:
1. Reverting back to mutex_lock to make sure no important request like enabling/disabling further frequency changes are skipped.
2. The mutex is unlocked before the CPUfreq stats are resetted. With the above modification this seems necessary to avoid lockups when changing the OC value.
3. The frequencies and bus speed are updated only when the selected OC value actually did change.
Bugfix: http://www.pastie.org/2756640
BUGFIX #7:
Maximum OC value increased to 150.
Bugfix: http://www.pastie.org/2768535
No further patches will be published here. I have set up a git repo for all my tweaks. Each mod has its own branch to keep the tweaks cleanly separated and one can simply pull the latest patches from the corresponding branch.
https://github.com/Ezekeel/GLaDOS-nexus-s/tree/liveoc
Thanks to Morfic for his help.
What are creative guy…so many useful mod. Great!!
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Just when I start to think what else can this guy come out with.. lol
Trying it now
Sent from my Nexus S 4G using Tapatalk
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
kevinngck1 said:
Is the liveoc file just included in morfic teuv kernel???
Sent from my NOOB Nexus S with the poor english by using XDA Premium App
Click to expand...
Click to collapse
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
The first bugfix.
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Pretty impressive idea and implementation.
Although I don't have this phone (hope to get one soon as it's for a great price here in Portugal), I stumbled upon this thread and I liked it very much. Keep it up!
This is eactly what I want!!!
You're my hero
Ezekeel said:
We all know Morfic's popular TEUV kernel which features a low maximum frequency of just 880MHz, but still shows an excellent performance. The secret sauce is the increased bus speed of 220MHz compared to the stock frequency of 200MHz. The problem is that every Nexus S behaves differently because of production tolerances for the CPU and not all devices are able to handle this increased bus speed.
Thus it would be nice to have some way for the user to individually adjust the bus speed to match the overclocking capabilities of their device. Unfortunately with TEUV the bus speed has to be defined on compilation time thus the only way would be to release different versions with different bus speeds which, frankly, would be a pain in the ass. So I implemented a way to change the bus speed on-the-fly while the device is running. In contrast to TEUV not only the bus speed for the maximum frequency but for all states is increased by the same percentage (might change this later, especially for the minimum state).
In '/sys/class/misc/liveoc' change the performance by passing a value from 100 to 120 to 'oc_value' (100 = stock performance, 120 = +20% performance; 100 is default). The bus speed and frequencies for all states will be adjusted accordingly.
I am currently running my Nexus with an increased performance +10% using the stock frequencies 100->110, 200->220, 400->440, 800->880 and 1000->1100 and after increasing the voltage for the maximum state by 25mV everything is working fine without a reboot for 24h now. The battery drain however seems to be pretty high so it might be a good idea to leave the lowest frequency state untouched. Time and your feedback will tell.
Changes to the source: http://www.pastie.org/2634833
BUGFIX:
The sleep frequency is also adjusted according to the selected OC value, so a proper sleep frequency is chosen when the device is suspended.
Bug fix: http://www.pastie.org/2635644
Thanks to Morfic for his help.
Click to expand...
Click to collapse
very nice.
i wonder why the increased battery drain. are you still getting similar numbers in setcpu's "time in state" as you were with teuv?
My goodness! Ezekeel! You're just that excellent!
Nice idea, although I don't have a nexus S, (thanks @tapatalk for showing me this thread)
Ezekeel said:
Morfic's TEUV kernel was the inspiration for this mod. It is not implemented in any kernel yet.
Click to expand...
Click to collapse
I'll need some time to wedge this in.
Check why the compile fails after adding the failed hunks (looks like possibly missapplied fuzzy hunk)
Aside i would want it to work with each kernel type, be it TEUV, TUV or T12, T13, T144 or T1544
Since that is all layed out as Kconfig options i'll have to check where to apply the code you added to stock source so it will indeed work for all the speeds, kind of as a added bonus to the current speeds.
Then i would have to shoehorn in a voltage control and OCing without voltage control is not a good idea, 1.0GHz has some obvious headroom, but the OC speeds especially will want a nudge on the voltage side if you nudge the bus/cpu/gpu across the board by x%
and with kernel.org up (not android.git.kernel.org (unless we android geeks just totally hammered it)) i would prefer to grab latest samsung source, freshen up all builds, then work on integrating this.
I could see the netarchy layout benefit from this patch as there are no Kconfig #ifdef to deal with (I'm looking at you mathkid ;P lol hah! coo <3)
Just a little timeframe setter to tune the expectations to a realistic level.
Thanks Ezekeel
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
Very nice.
Told you those hummingbirds are picky about their sleep freq
Now we know OCing it causes high drain instead of the typical SoD when no high enough clock is available.
Ezekeel said:
Thanks to all your kind words.
Seems like the sleep frequency fix also took care of the high battery drain.
Click to expand...
Click to collapse
imagine that..
a better sleep makes a happier kernel
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
kenvan19 said:
Dude, ezekeel do you ever sleep or think about anything other than making our phones more powerful? How can so much utility come from one guy and why are you not employed by the government finding new and exciting ways to kill people. Imo you deserve a massive salary with a brain like yours.
Sent from my Nexus S MV from the XDA Premium app.
Click to expand...
Click to collapse
He codes on the job, i think that makes a big difference on the time availability front.
Any news or update?
Seems no kernel has added this mod
Really want to have a try
It 's coming to Matr1x..
Sent from my Nexus S using XDA App
Its here!!! Matr1x 8.5
Sent from my Nexus S using XDA App
Hi guys.
I would like to know the differences amongst various governors. I googled a bit and both on the net and XDA I found some explanations, but not all the governors I have are properly explained. Some of them are not explained at all.
Is there anybody able to help me?
I found some info here and here
The governors I have with FM1.5 not explained are:
lazy
lulzactive
lagfree
intellidemand
smartassv2
ondemandx
Ok, some of them like lagfree could be self-explanatory, but I would be grateful if somebody could be more clear...
Thanks as usual to all!!
bump.
no one?
Note to myself: answer this thread when you get home...
Not at home? :-D
Sent from my GT-N7000 using Tapatalk
Diamantes said:
Not at home? :-D
Sent from my GT-N7000 using Tapatalk
Click to expand...
Click to collapse
have you reached home yet? would be glad if you could answer
I was in Prague for a week
Ok, so, to be honest using only Google I found this:
lazy (http://forum.xda-developers.com/showthread.php?t=1276092) - is ondemand but with an added option to stay longer on a certain frequency. This is due to the fact that some CPU's dont like too quick freq changes when sampling rate for decision making is set too low. See link for more.
lulzactive (http://tegrak2x.blogspot.com/2011/11/lulzactive-governor-v2.html) - is basically interactive governor with added smartass bits and variable (as opposed to fixed amout) frequency scaling, based on currently occuring cpu loads. Has, like smartass, a sleep profile built-in. See link for details on exact scaling.
lagfree (http://forum.xda-developers.com/showthread.php?t=1272933) - seems to be ondemand but with a lessend tendency to ramp up to 100% but rather also use steps available in between 0-100%.
intellidemand (freely translated from http://www.android-hilfe.de/root-hacking-modding-fuer-samsung-galaxy-s2/185085-ist-ein-governor.html) - behaves like ondemand when the system is under heavy use, it behaves differently when the system is mostly ideling. That mode is colled "browsing mode" or "browser mode" or whatever. It seems to be some sort of "intelligent" demand sensing/analysing ondemand governor.
smartassV2 - this one should be known. It's the same as smartass(V1) but tweaked. Same code author. I heard one should use smartassV2 instead of smartass when available.
ondemandx - is ondemand with an added sleep profile built-in. I believe all ...X kernels are the default kernels but with an added sleep profile.
Just in case you wonder: I use Savagedzen, I somehow like it best. And I have to get up at 4:20am thats in 2:48h so you may excuse me if I go to bed.
thanks +1
Hope you found the info you were looking for already, if not - take a look at this: http://forum.xda-developers.com/showthread.php?t=1369817
What's new:-
added wheatley governor
added hotplug governor
added lionheart
added lionheartx
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
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
LIONHEARTX:- LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
SAVAGED ZEN:- Another Smartass-based kernel with many modifications aiming to attain both better battery and performance.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
ONDEMAND X:- governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic. No further optimization is done.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
POWERSAVE:- Available in some kernels. It will keep the CPU running at the “min” set value at all times.
Click to expand...
Click to collapse
USERSPACE:- A method for controllingthe CPU speed that isn't currently used by SetCPU. For best results, donot use the userspace governor.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
INTERACTIVEX:- The same thing as interactive but it clocks the cpu downto 300mhz in sleep mode.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
BRAZILIANWAX:- Similar to smartassV2. More aggressive ramping, so more performance, less battery.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
MIN/MAX:- stays at minimum speed until more speed is needed then goes straight to highest speed.
Click to expand...
Click to collapse
APPLY THESE GOVERNERS WISELY
where can i get SMARTASS V2?
i use No-frill but don't have it..
marKyAn said:
where can i get SMARTASS V2?
i use No-frill but don't have it..
Click to expand...
Click to collapse
developer of the kernel have to add the governor to kernel
marKyAn said:
where can i get SMARTASS V2?
i use No-frill but don't have it..
Click to expand...
Click to collapse
It depends on the OC kernel if the developer included it. Are you using a custom ROM? SMARTASS V2 is the default governor of CM7 RC0 by subpsyke. :
Guys if you need ny info about any governor then please write it here and i will add that
dhlalit11 said:
Guys if you need ny info about any governor then please write it here and i will add that
Click to expand...
Click to collapse
Would appreciate if you can add the custom kernel by squad, lilgv2.. and its difference with smartassv2..
Sent from my GT-S5570 using XDA App
kitrax59 said:
Would appreciate if you can add the custom kernel by squad, lilgv2.. and its difference with smartassv2..
Sent from my GT-S5570 using XDA App
Click to expand...
Click to collapse
+1
Sent from my GT-S5570 using XDA App
Anass Ahmed said:
+1
Sent from my GT-S5570 using XDA App
Click to expand...
Click to collapse
i have seen that many people are looking for the info about lilgv2 but it is device specific and specially created by squadzone for gmini
so i have contacted squadzone for the info but didn't get any reply yet
when i get reply i will add it here so please wait for some time
Thx a lot, i was always using performance and my battery was draining really fast.
Sent from my GT-S5570L using XDA App
gumball3000 said:
Thx a lot, i was always using performance and my battery was draining really fast.
Sent from my GT-S5570L using XDA App
Click to expand...
Click to collapse
why just saying thanks why not pressing it
dhlalit11 said:
why just saying thanks why not pressing it
Click to expand...
Click to collapse
Because we use XDA app and there's no thanks button in it!
Sent from my GT-S5570 using XDA App
I am using the xda app, i don't think it's possible. Ill give you a like if you really want.
Sent from my GT-S5570L using XDA App
To reply thanks is just simple.
Tap on particular post and choose ur options
marKyAn said:
where can i get SMARTASS V2?
i use No-frill but don't have it..
Click to expand...
Click to collapse
Flash emanoN. It already includes that.
Nice thread I always wanted to know more about the governors. Thanks
sufacs surety.
android1999 said:
Flash emanoN. It already includes that.
Click to expand...
Click to collapse
also included by default in the new CM Music_Edition_v3
What is the difference btween ondemand and ondemandX?
Sent from my GT-S5570 using xda premium
Kaustubh_93 said:
What is the difference btween ondemand and ondemandX?
Sent from my GT-S5570 using xda premium
Click to expand...
Click to collapse
Added ondemandx governor no much difference
since we know that squads kernels have instead smartassv2 lilgv2, would be really nice to know how is it improved
Sent from my GT-S5670 using Tapatalk
v
djozaa said:
since we know that squads kernels have instead smartassv2 lilgv2, would be really nice to know how is it improved
Sent from my GT-S5670 using Tapatalk
Click to expand...
Click to collapse
these are the key upgrades in smartass v2 they are different from device to device
1. Smartass v2 have added a more aggressive screen off profile but if you have applied a screen off profile it will cause issue
2. Smartass v2 is more responsive than before
3. Smartass v2 have changed default frequency
4. Saves much power than before
Hi! I really want interactive or interactivex governor on my phone. I know we can use custom kernel to have that. I cant unlock my bootloader... so.... Is there anyway to install it? I had searched in Google but no luck... HELP!
Sent from my W8 using Tapatalk
Hallo...
Sent from my W8 using Tapatalk
Halllllllooooooo....
Sent from my W8 using Tapatalk
What does interactive n interactivex do?
Sent from my E15i using Tapatalk
I heard it has more performance and stability.
Hit the THANKS button if I helped!!
Sent from my W8 using Tapatalk
lucastan96 said:
I heard it has more performance and stability.
Hit the THANKS button if I helped!!
Sent from my W8 using Tapatalk
Click to expand...
Click to collapse
I tried it..
I set the cpu freq to 787
But the antutu benchmark score is really low.... Only about 1100+ =_=
And..
Red light when im going to play dead space
Sent from my E15i using Tapatalk
lucastan96 said:
Hi! I really want interactive or interactivex governor on my phone. I know we can use custom kernel to have that. I cant unlock my bootloader... so.... Is there anyway to install it? I had searched in Google but no luck... HELP!
Sent from my W8 using Tapatalk
Click to expand...
Click to collapse
interactive is same as smartass!
---------- Post added at 09:10 AM ---------- Previous post was at 09:04 AM ----------
lucastan96 said:
Hi! I really want interactive or interactivex governor on my phone. I know we can use custom kernel to have that. I cant unlock my bootloader... so.... Is there anyway to install it? I had searched in Google but no luck... HELP!
Sent from my W8 using Tapatalk
Click to expand...
Click to collapse
interactive is same as smartass!
Powersave
Constantly runs the processor at its slowest speed. While technically this sounds like it would save power in practise it doesn’t, as it takes so much longer to complete tasks the CPU cannot fall into sleep states where it truly saves power.
Ondemand
Dynamically changes CPU frequency in response to CPU utilization. Probably the best balanced governor to choose as it selects the highest available processor frequency when the processor load rises above a definable threshold (up_threshold). Could create an amount of latency.
Conservative
A more aggressive version of the Ondemand governor that would be a better choice for more demanding tasks, as it’s responds more quickly in meeting increases in CPU demand and keeps the speed rating higher for longer, at the price of battery life.
Userspace
Use the userspace governor if you want to impose a unique power policy that is not provided by other kernel governors or if you want to experiment with directly setting different power policies.
Interactive
This uses an alternative approach to sampling CPU demand at a set rate. It uses a fixed timer that if the CPU is 100% busy when it fires, continues to ramp the CPU speed to the maximum setting. If it’s not the speed is ramped down based on recent measured demand.
SmartAss (v2)
Available with a number of kernels but doesn’t have any official description beyond being an improved variant of the Interactive governor. It’s the one we tend to opt for.
Ok... thanks for helping... edward, you should open a thread you written above in general section.
Hit the THANKS button if I helped!!
Sent from my W8 using Tapatalk
lucastan96 said:
Ok... thanks for helping... edward, you should open a thread you written above in general section.
Hit the THANKS button if I helped!!
Sent from my W8 using Tapatalk
Click to expand...
Click to collapse
I agree
Sent from my X8i using Tapatalk
What abouth SavagedZen???
drapeti said:
What abouth SavagedZen???
Click to expand...
Click to collapse
Well, the best description you can find is in the changelog of savagedzen's Kernel on Github ...
Brand spanking new SavagedZen CPU Governor !!! Based off of the SMARTASS gov. Brings the smartass goodness plus a few more tweaks.
Click to expand...
Click to collapse
Now take your own pick what this means, or what improvements it may bear.
edward091810 said:
interactive is same as smartass!
---------- Post added at 09:10 AM ---------- Previous post was at 09:04 AM ----------
interactive is same as smartass!
Powersave
Constantly runs the processor at its slowest speed. While technically this sounds like it would save power in practise it doesn’t, as it takes so much longer to complete tasks the CPU cannot fall into sleep states where it truly saves power.
Ondemand
Dynamically changes CPU frequency in response to CPU utilization. Probably the best balanced governor to choose as it selects the highest available processor frequency when the processor load rises above a definable threshold (up_threshold). Could create an amount of latency.
Conservative
A more aggressive version of the Ondemand governor that would be a better choice for more demanding tasks, as it’s responds more quickly in meeting increases in CPU demand and keeps the speed rating higher for longer, at the price of battery life.
Userspace
Use the userspace governor if you want to impose a unique power policy that is not provided by other kernel governors or if you want to experiment with directly setting different power policies.
Interactive
This uses an alternative approach to sampling CPU demand at a set rate. It uses a fixed timer that if the CPU is 100% busy when it fires, continues to ramp the CPU speed to the maximum setting. If it’s not the speed is ramped down based on recent measured demand.
SmartAss (v2)
Available with a number of kernels but doesn’t have any official description beyond being an improved variant of the Interactive governor. It’s the one we tend to opt for.
Click to expand...
Click to collapse
So you dont want to open thread? I will help you open it..
Hit the THANKS button if I helped!!
Sent from my W8 using Tapatalk