Related
I wanted to know what the different governors do, rather than filling dev's threads up with questions I thought i would have a look around and do this for others who like me wanted to know what they do:
1: Interactive
The CPUfreq governor "interactive" is designed for low latency, interactive workloads. This governor sets the CPU speed depending on usage, similar to "ondemand" and "conservative" governors. However there is no polling, or 'sample_rate' required to scale the CPU up. Sampling CPU load every X ms can lead to under powering the CPU for X ms, leading to dropped framerate, stuttering UI etc..Scaling the CPU up is done when coming out of idle, and like "ondemand" scaling up will always go to MAX, then step down based off of cpu load.
There is only one tuneable value for this governor: min_sample_time: The ammount of time the CPU must spend (in uS) at the current frequency before scaling DOWN. This is done to
more accurately determine the cpu workload and the best speed for that workload. The default is 50ms.
2:Min Max
well this governor makes use of only min & maximum frequency based on workload... no intermediate frequencies are used.
3:Smartass
(Quoted from another author http://www.ziggy471.com/2010/11/07/s...-governor-info ) - "is based on the concept of the interactive governor.
I have always agreed that in theory the way interactive works – by taking over the idle loop – is very attractive. I have never managed to tweak it so it would behave decently in real life. Smartass is a complete rewrite of the code plus more. I think its a success. Performance is on par with the “old” minmax and I think smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Smartass will also cap the max frequency when sleeping to 352Mhz (or if your min frequency is higher than 352 – why?! – it will cap it to your min frequency). Lets take for example the 528/176 kernel, it will sleep at 352/176. No need for sleep profiles any more!"
4:Scary
A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.
I assume performance, conservative, powersave and ondemand are self explanatory,
Userspace - finding conflicting info, so if a dev wants to help me out ??
All this info was found on the web in various places, where possible I have quoted where from. If people would like me to link back to them please let me know I will add.
This is purely to help people understand the governors a little without filling dev threads
Can people also leave user feedback on the governors they have been using to give us a reference point to help us all
if it helped hit thanks
Dooms Kernel : http://forum.xda-developers.com/showthread.php?t=1226826
Schedulers post 3
Nice one Chiefy, good to know we have a thread for quick reference when needing it.
Schedulers
NOOP scheduler
The NOOP scheduler inserts all incoming I/O requests into a simple, unordered
FIFO queue and implements request merging.
The scheduler assumes I/O performance optimization will be handled at some
other layer of the I/O hierarchy; e.g., at the block device; by an intelligent
HBA such as a Serial Attached SCSI (SAS) RAID controller or by an externally
attached controller such as a storage subsystem accessed through a
switched Storage Area Network).
NOOP scheduler is best used with solid state devices such as flash memory
or in general with devices that do not depend on mechanical movement to
access data (meaning typical "hard disk" drive technology consisting of seek
time primarily, plus rotational latency). Such non-mechanical devices do not
require re-ordering of multiple I/O requests, a technique that groups together
I/O requests that are physically close together on the disk, thereby reducing
average seek time and the variability of I/O service time.
Deadline
The goal of the Deadline scheduler is to attempt to guarantee a start service time for a request[1]. It does that by imposing a deadline on all I/O operations to prevent starvation of requests. It also maintains two deadline queues, in addition to the sorted queues (both read and write). Deadline queues are basically sorted by their deadline (the expiration time), while the sorted queues are sorted by the sector number.
Before serving the next request, the Deadline scheduler decides which queue to use. Read queues are given a higher priority, because processes usually block on read operations. Next, the Deadline scheduler checks if the first request in the deadline queue has expired. Otherwise, the scheduler serves a batch of requests from the sorted queue. In both cases, the scheduler also serves a batch of requests following the chosen request in the sorted queue.
By default, read requests have an expiration time of 500 ms, write requests expire in 5 seconds.
Anticipatory
Anticipatory scheduling is an algorithm for scheduling hard disk input/output. It seeks to increase the efficiency of disk utilization by "anticipating" synchronous read operations.
"Deceptive idleness" is a situation where a process appears to be finished reading from the disk when it is actually processing data in preparation of the next read operation. This will cause a normal work-conserving I/O scheduler to switch to servicing I/O from an unrelated process. This situation is detrimental to the throughput of synchronous reads, as it degenerates into a seeking workload.[1] Anticipatory scheduling overcomes deceptive idleness by pausing for a short time (a few milliseconds) after a read operation in anticipation of another close-by read requests.[2]
Anticipatory scheduling yields significant improvements in disk utilization for some workloads.[3] In some situations the Apache web server may achieve up to 71% more throughput from using anticipatory scheduling.[4]
The Linux anticipatory scheduler may reduce performance on disks using TCQ, high performance disks, and hardware RAID arrays.[5] An anticipatory scheduler (AS) was the default Linux kernel scheduler between 2.6.0 and 2.6.18, by which time it was replaced by the CFQ scheduler.
BFQ
The Brain **** Scheduler (or BFS) is a task scheduler designed for the Linux kernel in August of 2009 as an alternative to the Completely Fair Scheduler and the O(1) scheduler.[2] BFS was created by veteran kernel programmer Con Kolivas[3].
The objective of BFS, compared to other schedulers, was to provide a scheduler with a simpler algorithm, that did not require adjustment of heuristics or tuning parameters to tailor performance to a specific type of computation workload. The BFS author asserted that these tunable parameters were difficult for the average user to understand, especially in terms of interactions of multiple parameters with each other, and claimed that the use of such tuning parameters could often result in improved performance in a specific targeted type of computation, at the cost of worse performance in the general case.[4] BFS has been reported to improve responsiveness on light-NUMA (non-uniform memory access) Linux mobile devices and desktop computers with fewer than 16 cores.
CFQ
CFQ, also known as "Completely Fair Queuing", is an I/O scheduler for the Linux kernel which was written in 2003 by Jens Axboe.
CFQ works by placing synchronous requests submitted by processes into a number of per-process queues and then allocating timeslices for each of the queues to access the disk. The length of the time slice and the number of requests a queue is allowed to submit depends on the IO priority of the given process. Asynchronous requests for all processes are batched together in fewer queues, one per priority. While CFQ does not do explicit anticipatory IO scheduling, it achieves the same effect of having good aggregate throughput for the system as a whole, by allowing a process queue to idle at the end of synchronous IO thereby "anticipating" further close IO from that process. It can be considered a natural extension of granting IO time slices to a process.
I am testing scary at the mo on stock gb so will edit my post tomorrow bro.
over the next week I will use scary, smartass, ondemand, conservative and interactive and report my findings back here
please all get involved and report back your findings
Can people also post their voltage findings with Dooms new kernel
Scary Report
Phone been on 9h 39m, medium usage, clocking set 128-1113, voltages changed as above post,phone very responsive and no lags, battery remaining 39%, AnTuTu benchmark 2755 linpack 39.
Interactive Report
128-1132 up time 6h 25mins, phone responsive no lag, medium usage 36% left, AnTuTu benchmark 2502 linpack 36 this governor doesnt seem to help battery level very much
6h 25mins and only 36% left? OMG! that's a battery drain!
Well, Quite frankly I went through the governors, Which do you think is better? Can you describe each governor in one word?
I'm on wolf rom with fps uncapped (3.x if i remember well) i haven't upgraded due to the issues pertaining to the users.
Can you just suggest me a good governor based on your experience? Can I get 24 hours of uptime with custom kernels or i still have to wait? ( I know I love OC that we had on 2.2 but looking at the battery drain I'm cautious whether or not to flash the custom kernels )
Thanks for your guide. It's epic!
Neo said:
6h 25mins and only 36% left? OMG! that's a battery drain!
Well, Quite frankly I went through the governors, Which do you think is better? Can you describe each governor in one word?
I'm on wolf rom with fps uncapped (3.x if i remember well) i haven't upgraded due to the issues pertaining to the users.
Can you just suggest me a good governor based on your experience? Can I get 24 hours of uptime with custom kernels or i still have to wait? ( I know I love OC that we had on 2.2 but looking at the battery drain I'm cautious whether or not to flash the custom kernels )
Thanks for your guide. It's epic!
Click to expand...
Click to collapse
so far the best governors that i have used have been Smartass and Scary but i will continue testing the governors and reporting back. Smartass was working great with no o/c for me, i will add this to this test. tomorrow i will test Scary with no o/c
Ok, my conclusions of using the scary gov on my modded stock gb is probally the best my phone has been, nearly all frequencies are being used, had to use min 192 and max 1190 as had a few screen off reboots but once using those settings my no more reboots. Battery life is the best i have had on custom kernel with flat line overnight, 3% loss, with wifi off and hourly updates of email, deep sleep working perfect as it should.
Overall, this is my personal favorite so far, just to add also this is using...
http://doomlord.sylvester20007.com/x10/x10_gb/dk/v02/dk-v02-X-modfxp_xrec.zip
I have not started using v03 of Dooms new kernel because of the good results with v02x.
Samrtass Report
Running Smartass governor uptime 5hours 1minute 128-1132cpu, medium usage, twitter, facebook two calls, brightness and 50%, AnTuTu Benchmark 1569 linpack 31 ( second linpac got WLOD ) battery 69%
Edit 10hours up time 42% battery left
As you can see smartass is a battery friend but performance suffers, although for my usage i find that this is the best governor for me at the minute
further governor tests continue
MIN/MAX Report
I tried to use this governor but it kept causing random reboots so gave up
keep going!!
I know this is missing topic but how would I overclock my x10. If it is, how safe is it?
Sent from my x10 Platinum
om23 said:
I know this is missing topic but how would I overclock my x10. If it is, how safe is it?
Sent from my x10 Platinum
Click to expand...
Click to collapse
From what I have encountered it depends on the age of your phone, it is safe and won't blow you phone up but some models can handle far greater stress. the newer phones tend to be able to overclock higher, all that will happen if you phone cant handle the overclock is you will get the dreaded WLOD and your phone will reboot, then if you have set the speed from boot you may get stuck at boot image, but if that is the case then you use flash tool and reflash
chiefy009 said:
MIN/MAX Report
I tried to use this governor but it kept causing random reboots so gave up
Click to expand...
Click to collapse
Thanks for this thread chiefy009!
I have tried all governors too (on Doom's kernel) and I have different experience to yours, so I thought I'd share.
For me, interactive/ondemand/smartass make the phone VERY choppy, especially while scrolling lists!
On the other hand, minmax gives me the smoothest and fastest results.
And I thought that jumping from Deep Sleep/MIN frequency to MAX frequency, without intermediate steps, would kill my battery but, to my amazement, battery life is very very good, I might say better than any other governor.
When I was using minmax as a module to the stock kernel, I got reboots too,
but since Doom integrated it into his kernel, it's stable as rock!
This is the info I found about this governor:
MinMax Governor (Battery Saver)
This governor will try to minimize the frequency jumps/changes which cause voltage spikes/changes and supposedly drain more battery life
Click to expand...
Click to collapse
Just my 2 cents!
My_Immortal said:
Thanks for this thread chiefy009!
I have tried all governors too (on Doom's kernel) and I have different experience to yours, so I thought I'd share.
For me, interactive/ondemand/smartass make the phone VERY choppy, especially while scrolling lists!
On the other hand, minmax gives me the smoothest and fastest results.
And I thought that jumping from Deep Sleep/MIN frequency to MAX frequency, without intermediate steps, would kill my battery but, to my amazement, battery life is very very good, I might say better than any other governor.
When I was using minmax as a module to the stock kernel, I got reboots too,
but since Doom integrated it into his kernel, it's stable as rock!
This is the info I found about this governor:
Just my 2 cents!
Click to expand...
Click to collapse
Thank you for getting involved, if you have time could you post all your findings on your usage of the governors ?
chiefy009 said:
Thank you for getting involved, if you have time could you post all your findings on your usage of the governors ?
Click to expand...
Click to collapse
Sure thing!
I am on Doom's kernel, which I believe includes all the available governors so far.
Scary Governor
Description coming from the author:
A new governor I wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as conservative right now, it will get tweaked over time.
Click to expand...
Click to collapse
Performance suffers, in my opinion.
It scales the CPU conservatively, so it is very annoying when playing games
or even syncing to get your Gmails.
Also, and this applies to all governors, speed is decreased when the sampling rate is high. Which means that if the CPU constantly checks for load in order to increase/decrease frequency, that will take its toll both to performance and battery life.
Smartass - Interactive - Ondemand
I am putting those 3 governors in the same category, because at least for me, they functioned very similarly.
What I noticed is that indeed the phone used almost all available frequencies before going to MAX, but the phone was laggy. Especially when scrolling in big lists, interactive and smartass gave me unacceptable performance. Ondemand was a tad better, but still, the phone seemed to "resist" scrolling for a few seconds and then go ahead and finally do it!
Battery life was pretty much the same as stock
(since ondemand is the default governor for stock kernel).
MinMax
As I stated in my previous post, minmax gave me the smoothest and fastest results.
This governor doesn't take intermittent load samples, when it first detects CPU load, aka you start using your phone, it jumps to the max frequency and stays there until you stop using it.
At this point, I want to express my opinion on the subject of "High Freq When Screen On", because many users complain about it, but I beg to differ.
In theory, CPU running at max frequency all the time, is heat generating and/thus battery consuming. Alas, be careful: in theory...
Because practically, when you use your phone, you usually do CPU demanding tasks.
When the phone is in my pocket/bag/drawer/whenever doing nothing, I want to be in Deep Sleep.
When I turn it on to look at the time of if there's any new notification, that lasts 30 secs - 1 minute. What frequency will be used then, is not that important.
When I turn it on to actually do something, I want it to be FAST.
If I can scroll a list faster, if I can open an app faster, then I will be using the phone for less time.
If the CPU is sampling and scaling up conservatively, the phone will be laggy
and I will need more time to accomplish my tasks.
All in all, I am not intimitaded by high frequencies while using the phone.
I would start worrying if I got no Deep Sleep -which isn't the case fortunately.
And my battery life is amazing, I get about 1 day and a few hours more,
with pretty heavy use.
Just my 2 cents on the matter.
Powersave
If you are ever really mad at your X10 and you want to see it struggle and suffer, then this is the governor for you! Enough said!
Performance
Pretty snappy, good for gaming and benchmarking, as it uses only MAX frequency. Not for prolonged use though, because it will ONLY use the max frequency (and Deep Sleep of course).
I'll make sure to make more tests in the future and post more thorough reviews!
Again, thanks for this thread chiefy009!!
My_Immortal said:
Sure thing!
I am on Doom's kernel, which I believe includes all the available governors so far.
Click to expand...
Click to collapse
Are you playing with the voltages at all ? if so could you record your findings for everyone ?
I am currently working through the governor list and then plan on trying to level out some voltages which work well
chiefy009 said:
Are you playing with the voltages at all ? if so could you record your findings for everyone ?
I am currently working through the governor list and then plan on trying to level out some voltages which work well
Click to expand...
Click to collapse
I have undervolted my phone using these values:
128000 Hz - 875 V
192000 Hz - 900 V
245760 Hz - 925 V
384000 Hz - 950 V
460800 Hz - 975 V
576000 Hz - 1000 V
652800 Hz - 1050 V
768000 Hz - 1100 V
844800 Hz - 1150 V
921600 Hz - 1200 V
998400 Hz - 1250 V
The phone runs pretty stable, didn't have a single reboot or WLOD so far (3 days).
Xperia X10i via Tapatalk
I will try those settings for undervolting
Smartass Update
This governor is working wonders for me at the minute, phone been online for 6hours, medium/light usage 128-1132mhz few calls, connected to bluetooth speaker in car, little web usage and twitter and the battery is still on 88%
That is impressive
Please share
1. your favorite governor (do you use any different governor on different profiles?)
2. your voltage parameters
3. Your benchmark using quadrant
Thanks
No one wants to play?
Maybe like me, they have no idea what you are talking about
What is a governor?
What voltage do you mean?
My quadrant score is 3900 ish
Thanks for the reply, I don't think I'm good enough to explain but, in a nutshell,
A governor is a a piece of code in the kernel that decides on the cpu speed. each kernel has multiple governors
voltage is where you can decide what voltage is delivered to your cpu at certain frequency. undervoltage will usually help you save battery. we have to pay attention not to go too low or it phone will freeze
download setcpu it will all become clearer
I will give this another bump before letting it die
Even I would be intrested in sharing this
currently I am using CF root with ondemand and its working all good
FM kernel with interactive. I find my phone snappier with this governor. I liked it the most with smartassv2 on Abysssomething (don't remember now) kernel, but too many teething problems with this one, had to revert to FM. I'll give it another shot soon though.
pjm77 said:
FM kernel with interactive. I find my phone snappier with this governor. I liked it the most with smartassv2 on Abysssomething (don't remember now) kernel, but too many teething problems with this one, had to revert to FM. I'll give it another shot soon though.
Click to expand...
Click to collapse
Do you use any additional profiles with Interactive?
Nope, I like the way it is.
pjm77 said:
Nope, I like the way it is.
Click to expand...
Click to collapse
Have you tried InteractiveX? Or, better yet, know the differences between the two? I am currently using smartassv2, FM kernel and have no complaints but would be interested if there was something a bit snappier when opening an app (I still get a bit of lag if I quickly select an app after unlocking the phone).
Yes, I've tried InteractiveX and OndemandX - they're both absolute rubbish (at least from my point of view). Both responsiveness and benchmark results were dismal (2800-3300 quadrant advanced). These are governors for anally retentive battery life lovers. Nothing wrong with that itself but beats the purpose when buying state of the art top shelf performance smartphone IMO.
Good to know. I appreciate the advice. Does that mean you also tried smartassv2 with the FM kernel? Any discernible difference between that and interactive, if you have? And sorry for all the questions but it saves me the trouble of trying them!
I just flashed the 1.3 FM a moment ago. Now running 100-1704 smartassv2, haven't played with voltages yet. Responsiveness in terms of screen scolling, lags & stutters seems better than 200-1400 interactive. Performance in Quadrant Advanced and Nenamark2 seems a tiny bit worse (but I don't really care about that, I use benchmarks only to roughly estimate, smoothness is what I'm after). I can't give you direct sources because I don't remember, but having spent several hours digging last weekend I concluded that for people who put performance slighly over battery life governors to be considered are interactive, smartass(v2), savagedzed and performance. Funny enough - I'm getting consistently worse benchmarks on performance governor on all kernels. I wonder why?
Thanks again. I will play around with some of the governors and settings to find the right fit. I think I will try savagedzen next but I am pretty happy with smartassv2 and may just stick with it.
Handy explanation of most of the governor options available in custom Note kernels: http://forum.xda-developers.com/showthread.php?t=1369817
AND
http://forum.xda-developers.com/showthread.php?t=1242323
Smartassv2 and vr. After reading a bit about it they seem to be the best for performance and balanced battery life.
i share with you my SetCPU config, voltage ...
it's very stable for me. It's not performance oriented but battery friendly.
what you think ?
EDIT : I use AbyssNote Kernel 1.2
I'm getting nice results here on FM Kernel 1.3. 1704mHz (1375mV) - 100mHz (775mV), lulzactive governor. 5000-5872 in Quadrant advanced, 32-35 in Nenamark2. Battery life good with low to med usage, poor when playing games, running satnav etc. - hardly a surprise We'll see about stability but so far so good.
This thread is finally picking off ! thank you all
I am currently on FM 1.3 and preferring lulzactive
I don't use any over clocking I guess I don't dare. is it safe?
I think i'm pretty aggressive with under voltage i'm running 1175mv at 1400mhz and 775mv at 200mhz. For some reason my phone freezes any time I use the 100mhz no matter the voltage .
Can you share the whole voltage for a comparison ?
with all this I can hardly get a full day of use with my battery but I guess I'm a pretty heavy on usage. no gaming or anything extensive but wifi-browsing-emails-3g-bluetooth all day
ArcticCat said:
For some reason my phone freezes any time I use the 100mhz no matter the voltage .
Click to expand...
Click to collapse
I read on some other kernel thread that Samsung's implementation of the 100mhz step is incomplete/buggy. That's probably why it doesn't work properly.
Spreadsheets for CPU Governors and I/O Schedulers
GOVERNOR RESULTS
I/O SCHEDULERS
Summary of the Results
This is a summary of the six most commonly used governors, listed in order of performance.
Best Performing
#1 - Performance
--- : Use Noop or Deadline
--- : Uses a lot more battery
#2 - SmartassV2
--- : Use Noop or SIO
--- : Good choice if you use a lot of CPU intensive apps
#3 - LulzactiveV2
--- : Use Deadline or Noop
--- : Good choice if you use a lot of CPU intensive apps
--- : Uses a little more battery than SmartassV2
#4 - Lazy
--- : Use Deadline or CFQ
--- : Do not enable SOMF (Screen Off Max Frequency uses more battery)
--- : Good choice if you do not use CPU intensive apps
#5 - Ondemand
--- : Use Noop or Deadline
--- : Good choice if you do not use CPU intensive apps
--- : Saves slightly more battery than Lazy
#6 - Conservative
--- : Use CFQ or Noop
--- : Generally one of the worst governors for saving battery, see next post for why.
Check my summary in the Battery Drain thread for more info about how to save battery.
Where did the other benchmarks go?
All ICS ROM Benchmarks: this thread
Kernel Features and Benchmarks: this thread
Battery drain: this thread
Power Saving Governors: this thread
Thanks to all the developers.
Conservative Not Saving Power?
chickelnoodensoup said:
Is the summary in the first post correct with regard to conservative? Is it really "Generally one of the worst governors for saving battery"? Interesting.
Click to expand...
Click to collapse
I know it seems a little odd. It's because a lot of developers seem to have tweaked conservative to make it feel snappier, but it has resulted in more CPU time at the top frequency.
If you take a look at my new spreadsheet: http://goo.gl/ThVzX
...you can see conservative always uses more power when the screen is on (at least for the four kernels I tested).
There is just one exception where conservative saves more power than other governors, and that is when the screen is off, music is on, deep idle is on, and this only applies specifically to Air Kernel. PLEASE NOTE: Steve Garon does not include deep idle, but is working on it, neither does Eugene, but I've asked him to consider it. For these two kernels, if you are listening to music with the screen off, currently, the best power saving governor is Ondemand.
For people who don't use their phone while off, and don't use many intensive apps, Ondemand is the best power saving choice.
For people who use a lot of CPU intensive apps, SmartassV2 will be the better choice. It will scale more agressively, help prevent lags, and save energy being wasted through these delays.
If you listen to music with the screen off, and your kernel supplies deep idle, the best power saving governor is SmartassV2 (except for the case of Air Kernel, see above). This is because it keeps the CPU close to the most efficient frequency: 400MHz.
I hope that covers anything. If I've made any glaring errors in my reasoning, please let me know.
Choosing a Governor
Variety is the spice of life, so try them all! While Mathkid95 swears by Ondemand, developers Eugene373, morfic, and steve.garon all vetted this work and agreed that the highest performing CPU governor is likely to offer battery savings through the race-to-idle principal. Eugene added that finding the right I/O scheduler to combine with your governor will make a big difference too. Extra thanks to Steve for providing the kernel on which I based this test, and all his valuable input! The I/O scheduler for the test was cfq, and note: governors have settable parameters which may vary between developers.
Choosing a Scheduler
I/O schedulers perform differently depending on the governor you are using. I've investigated this using the six most popular CPU governors (vote here) vs the six available I/O schedulers in Eugene's kernel, and the four available in r_data's kernel. All governors are based on either ondemand, interactive, or conservative. Recommended reading is available here: schedulers also for governors
Schedulers tested against these popular governors:
SmartassV2 - interactive variant, and winner of the governor test.
LulzactiveV2 - interactive variant
Lazy - Ezekeel's governor, ondemand variant
Performance - included as a reference for high scores
Ondemand
Conservative
Testing Methodology
To test the kernels I want a fair environment, so any differences in the results are down to the kernel, and nothing else. To achieve this I first make sure I have a clean system:
1) Format /system and /cache and wipe dalvic
2) Install the ROM, install the kernel
3) Boot up, use nstools to select deadline for I/O scheduler
4) Then select a CPU governor and I/O scheduler depending on the test at hand
5) Titanium Backup to restore all my benchmark programs (app only). Set everything to off, no gps, no sync, no BT, airplane mode. Force GPU rendering is selected. Wifi is on for connecting to the benchmark servers. A power adaptor is in use so the battery is always full.
Then I begin testing.
For the CPU Governor Comparison study:
6) Power off and power back up. When lock screen arrives, wait one minute to settle the system, i.e. until screen auto-off. Count to three. Unlock, and begin testing, recording all scores. Start over with all the tests. Record those scores. (I now have two sets of scores for all the benchmarks to create a mean for improved accuracy). Then select next governor, power off and on, and start the cycle again.
For the I/O Scheduler Comparison study:
6) Power off and power back up. For each new scheduler I completed one test which I did not record, just to ensure that the program was properly cached in the system. I then recorded the subsequent ten results. After ten results, I would select the next scheduler, until I had finished all six, then I would also select the next governor and go back to the first scheduler. I repeated this cycle until I had collected data for performance, and the three other main governor types.
Statistics in the scheduler study are a little different to the other tests. They combine overall performance scores with overall variance scores (where lower is better). The formula is
a= Database IO score - 3 standard deviations
b= Write speed - 3 standard deviations
c= Read speed - 3 standard deviations
score=(a*b*c) to the power of 1/3
If you multiply three values together, and take the cube root (same as raising to 1/3) then you arrive at the geometric mean. This type of mean allows the comparison of two different schedulers based not just on their performance, but also how consistent in that performance they are. That score is then compensated by adjusting by half of the percentage discrepancy between the mean and median. For most scores that is an adjustment of less than 1%.
Summary of the Results
SmartassV2 won the governor benchmarks, and also performed well in the battery drain benchmarks.
The best I/O scheduler to combine with this is noop.
This is the combination I personally prefer. However, this is merely my opinion, based on my tests. Mathkid95 prefers ondemand. At the time of writing, Steve Garon and Franco prefer their own tweaked versions of conservative. (My tests indicate CFQ is the best match for conservative.)
Nice work on this!
bedalus said:
Summary of the Results
SmartassV2 won the governor benchmarks, and also performed well in the battery drain benchmarks.
The best I/O scheduler to combine with this is noop.
This is the combination I personally prefer. However, this is merely my opinion, based on my tests. Mathkid95 prefers ondemand. At the time of writing, Steve Garon and Franco prefer their own tweaked versions of conservative. (My tests indicate CFQ is the best match for conservative.)
Click to expand...
Click to collapse
Im also prefer smartassv2+noop. Really good combination
Very usefull, Thanks
Surnom said:
Very usefull, Thanks
Click to expand...
Click to collapse
No problem. If anyone is wondering why so few posts, it's because I recently separated this work away from my kernel benchmarking thread. Feel free to feedback.
bedalus said:
Summary of the Results
SmartassV2 won the governor benchmarks, and also performed well in the battery drain benchmarks.
The best I/O scheduler to combine with this is noop.
This is the combination I personally prefer. However, this is merely my opinion, based on my tests. Mathkid95 prefers ondemand. At the time of writing, Steve Garon and Franco prefer their own tweaked versions of conservative. (My tests indicate CFQ is the best match for conservative.)
Click to expand...
Click to collapse
Never kneww that SmartassV2 works best with noop! I used to have it with deadline. Now experiencing the best experience ever!
using Franco BFS Nov 1st
Thanks man! Thanks Franco!
SmartassV2/Noop +1
UPDATE: Steve had a rethink of his Conservative governor parameters, and I've updated the table to include this. Check column L.
Lower scores are natural with conservative. This time, with the new parameters, the scores are even lower. This indicates that the new conservative is throttling the frequencies more aggressively, but it should also be noted that this governor feels much more responsive than the previous incarnation.
Note - the IO score shows a great improvement, but this is due only to a boost in database IO through the recent FSYNC patch. Make sure you use stable voltages to avoid reboots and potential data loss. (No benefit to UV anyway - check the results of my battery study, see link above.)
thx mate! You do a great job!
Sent from my Nexus S using Tapatalk
Some serious work been put into this.. Anyway of listing governors in respect of there performance then a list of governors for best battery life and the recommended I/O schedulers to accompany them. I know the graph is there but it'll be easier for people like me (not so good with cpu settings) to just simply apply from a high to low list which indicates best performance or more battery life. I'm getting great battery life and decent performance using ondemand with noop but it eats battery a lot more when phone is in use compared to other combinations I've tried.
Sent from my HTC Desire S using XDA App
bedalus said:
Summary of the Results
SmartassV2 won the governor benchmarks, and also performed well in the battery drain benchmarks.
The best I/O scheduler to combine with this is noop.
Click to expand...
Click to collapse
Is it just me or does the spreadsheet say deadline is best with SmartassV2 with noop second?
dabado said:
Some serious work been put into this.. Anyway of listing governors in respect of there performance then a list of governors for best battery life and the recommended I/O schedulers to accompany them. I know the graph is there but it'll be easier for people like me (not so good with cpu settings) to just simply apply from a high to low list which indicates best performance or more battery life. I'm getting great battery life and decent performance using ondemand with noop but it eats battery a lot more when phone is in use compared to other combinations I've tried.
Sent from my HTC Desire S using XDA App
Click to expand...
Click to collapse
Good idea. I will try to do it today.
kernels ; battery ; ROM ; gov/sched
Thaks to your recommend, I use noop + SmartassV2.
I used cfq+tweaked conservative before that set, but I can't feel differece and battery life (I don't know this phrase mean but I'm saying it is very good!)
UPDATE: First post edited. Now summarises all findings. Also, makes it easier to read if you are using the XDA app
Thank you !
Bedalus, I did a little amateur test today.
I played some music with not-too-loud volume.
I keep my data ON, everything else is off.
The screen is always ON with lowest brightness because I'm looking at the CPU frequency used.
CPU min 200, max 1000.
I went to Processor settings and look at the CPU frequency used at the moment.
When I selected Conservative and let it stay for 10 seconds, the CPU freq is showing 1000 constant.
Then I selected Lazy and let it stay for another 10 seconds, the CPU freq is 400 constant.
With SmartassV2, let it stay for 10 seconds, the CPU freq is randomly jumping from 200, 400 and sometimes 1000.
Well my question is, shouldn't Conservative be constantly using the lowest frequency among the other governors?
From what I saw it is Lazy which constantly used the lowest.
What do you think?
I know this test is not reliable at all, so sorry if it's just a waste of time.
glennkaonang said:
Bedalus, I did a little amateur test today.
I played some music with not-too-loud volume.
I keep my data ON, everything else is off.
The screen is always ON with lowest brightness because I'm looking at the CPU frequency used.
CPU min 200, max 1000.
I went to Processor settings and look at the CPU frequency used at the moment.
When I selected Conservative and let it stay for 10 seconds, the CPU freq is showing 1000 constant.
Then I selected Lazy and let it stay for another 10 seconds, the CPU freq is 400 constant.
With SmartassV2, let it stay for 10 seconds, the CPU freq is randomly jumping from 200, 400 and sometimes 1000.
Well my question is, shouldn't Conservative be constantly using the lowest frequency among the other governors?
From what I saw it is Lazy which constantly used the lowest.
What do you think?
I know this test is not reliable at all, so sorry if it's just a waste of time.
Click to expand...
Click to collapse
It sounds like quite an interesting test. I'm surprised at the conservative result. Which kernel are you on?
Well I am sticking to one Rom and that's Crisekelo's like in my good 'n old sgs froyo times, but I like to test various kernels, when I have time...
Anyway I never saw a Mod Kernel with so many governors as the AbyssNote kernel, which I am testing right now..
Since there are many users out there that unlike me, already own the GNote for a long time and are way more experienced than me with this particular Kernel, I decided to start this Poll-thread so users can vote on their favorite governor and prehaps elaborate a little about it..
Thanks in advance..
Since Abyss Kernel is not working for my Note (overheat), I' at FM kernel with SavagedZen governor and vr I/0 Scheduler, butter smooth and stable, goes to deep sleep as it supposed to, sharp performance and moderate battery life. I know you prefer Abyss but just wanna let you know how the other kernel is working.
When I was on Abyss I was using abyssplug governor with and without undervolting. Hope you can get Abyss work for you, if you manage to do it without overheat I would appreciate any info.
have fun!
Oops ... you reacted fast ! The poll was not even ready
At the moment I don't prefer any kernel ( Only the rom) and on a device such as the GNote, I have a hunch that we dont need a super-optimized kernel with tons of iterations and that's why I always keep CF-Root and Speedmod handy, but I like the dedication and availability of AbyssNote developer, so I am giving it another try...
Since I have not enough time to play with the GNote as I did with the sgs, I am hoping that the AbyssNote users will give this specific input ....
iceangel1980 said:
"... Abyss Kernel is not working for my Note (overheat), I' at FM kernel with SavagedZen governor and vr I/0 Scheduler, butter smooth and stable, goes ..."
Click to expand...
Click to collapse
Hi betoNL,
just give the Abyss Kernel v3.7 another try. I am really satisfied with ABYSSPLUG governor and the SIO scheduler - great balance between performance and battery life. And it is also butter smooth and stable without any overclocking indeed ;-)
To be honest: I can't understand your problem with overheating. It could have its seeds in an app with unnormal behaviour or a constant hang-up in the background. Maybe you will execute this little turnaround at the next opportunity:
1. Charge your battery to 100%
2. Use a Taskkiller and kill every open task
3. Reboot in Recovery Mode and wipe voltage & battery stats (DON'T WIPE ANYTHING ELSE, PLEASE!)
4. Reboot yours system...
Best regards
[bs]
---------- Post added at 05:53 PM ---------- Previous post was at 05:50 PM ----------
Hi,
great poll... my vote goes to the abyssplug ;-)
Would be interesting to add users choice of the I/O scheduler.
What do you think about that little improvement?
Best regards
[bs]
As I said, I recommend AbyssPlug
I don't understand how abyssplug works. So I don't use it.
I do use lulzactive because it uses mostly my lowest frequency which drains battery the least when not stressed and highest frequency when stressed and basically ignores everything in between. It's been great.
can someone explain how abyssplug works? I've been searching, it only says modified hotplug. That doesn't tell me much.
Originally Posted by mancman
here the exact explanation on RootzWiki:
Wheatley governor
in short words this govenor is build on "ondemand" but increases the C4 state time of the CPU and doing so trying to save juice....
The known ones are really good described here one the setcpu page:
the rest is nice described here:the rest is nice described here:
lazy (http://forum.xda-developers.com/show....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...vernor-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/show....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-hac...-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.
AbyssPlug Governor:
Abyssplug governor is a modified hotplug governor
>>Hotplug Governor:
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 determined
by directly accessing the CPUfreq frequency table, instead of taking
some percentage of maximum available frequency.
The key difference in the "hotplug" governor is that it will disable
auxillary CPUs when the system is very idle, and enable them again once
the system becomes busy. This is achieved by averaging load over
multiple sampling periods; if CPUs were online or offlined based on a
single sampling period then thrashing will occur.
Sysfs entries exist for "hotplug_in_sampling_periods" and for
"hotplug_out_sampling_periods" which determine how many consecutive
periods get averaged to determine if auxillery CPUs should be onlined or
offlined. Defaults are 5 periods and 20 periods respectively.
Otherwise the standard sysfs entries you might find for "ondemand" and
"conservative" governors are there.
__________________
After goin thru this thread I tried the AbyssPlug governor.
And indeed its good so far.
Me likes!!!!!!!!!
Sent from my GT-N7000 using xda premium
My choice is lulzactive.
Most important things for me are smoothness, fast wake&unlock and gaming performance. I don't care about the battery life that much so it seems a perfect choice for me.
pjm77 said:
My choice is lulzactive.
Most important things for me are smoothness, fast wake&unlock and gaming performance. I don't care about the battery life that much so it seems a perfect choice for me.
Click to expand...
Click to collapse
I like lulzactive, too!
What, no smartassv2 love here ? I found it at least as good as lulzactive for my usage.
My priorities - Fast response after sleep, smoothness, battery.
My governor choices on top were : SmartAssV2 (Currently using), AbyssPlus (Used it, liked it, later will compare to SmartAssV2) and Lulzactive (which is pretty good as well).
betoNL said:
Originally Posted by mancman
here the exact explanation on RootzWiki:
Wheatley governor
in short words this govenor is build on "ondemand" but increases the C4 state time of the CPU and doing so trying to save juice....
The known ones are really good described here one the setcpu page:
the rest is nice described here:the rest is nice described here:
lazy (http://forum.xda-developers.com/show....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...vernor-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/show....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-hac...-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.
AbyssPlug Governor:
Abyssplug governor is a modified hotplug governor
>>Hotplug Governor:
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 determined
by directly accessing the CPUfreq frequency table, instead of taking
some percentage of maximum available frequency.
The key difference in the "hotplug" governor is that it will disable
auxillary CPUs when the system is very idle, and enable them again once
the system becomes busy. This is achieved by averaging load over
multiple sampling periods; if CPUs were online or offlined based on a
single sampling period then thrashing will occur.
Sysfs entries exist for "hotplug_in_sampling_periods" and for
"hotplug_out_sampling_periods" which determine how many consecutive
periods get averaged to determine if auxillery CPUs should be onlined or
offlined. 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
Again, it's just a modified hotplug. What's modified about it?
betoNL said:
Oops ... you reacted fast ! The poll was not even ready
Click to expand...
Click to collapse
guess I was in chatty mood
BrainSex said:
\
To be honest: I can't understand your problem with overheating. It could have its seeds in an app with unnormal behaviour or a constant hang-up in the background. Maybe you will execute this little turnaround at the next opportunity:
1. Charge your battery to 100%
2. Use a Taskkiller and kill every open task
3. Reboot in Recovery Mode and wipe voltage & battery stats (DON'T WIPE ANYTHING ELSE, PLEASE!)
4. Reboot yours system...
Click to expand...
Click to collapse
Believe me I don't get it either and I'm pretty upset I can't use that kernel which is so valued by other android users. I was trying your advice and any other I could find in Abyss Kernel thread, nothing works for me. What is really funny I don't have any problems on other kernels. Well maybe I'm just unlucky this way. I'm thinking about getting my Note to Samsung for screen display exchange, so maybe they can do something about overheating too, maybe it's hardware related.
Thank you for your interest and advice
anyone using the app 2nd core and turning on dynamic hotplug?
It rly helps the battery
Might be useless to use along side abyssplug tho since it does the same thing
I use lulzactive, don't care about a little more battery drain
I use too 500mhz minimum speed @ 800mv, with it is pretty strange because 100 and 200 are not stable at that voltage and need 825, so having more speed I use less battery.
You don't use less battery because it's not only determined by voltage. Frequency us also a factor in power consumption, so 100MHz at 825 uses less battery for sure.
Sent from my superior GT-N7000 using Tapatalk
Zamboney said:
You don't use less battery because it's not only determined by voltage. Frequency us also a factor in power consumption, so 100MHz at 825 uses less battery for sure.
Sent from my superior GT-N7000 using Tapatalk
Click to expand...
Click to collapse
There's a post here somewhere here in the gnote forum that shows a study where they explain how 50 and 100MHz do consume more battery cause the CPU gets more stressed and takes longer to perform the task that would take less time and effort to accomplish at a higher frequency (or something like that)
Actually a higher frequency @ same voltage as a lower frequency would consume LESS battery because it will complete the task faster.
Sent from my GT-N7000 using Tapatalk
With my setup only ondemand really worked well, my second core scaling is always set to 2 cores enabled and I have a landscape setting for ADWex and any other governor will give me like 10-15fps when opening the app drawer.
Abyssplug fits my needs: I don't need so much power (no playstation-like games) but I use phone h24, from music to calls, from surfing to calendar/alarm...quite all stuff by BT headset and voice command. Battery drains slower than expected, my Note stays alive 'till night
Hello Everyone.
As we know that CPU Governors are the ones that tell the CPU to do what in what situation and are largely responsible for battery and performance. Applying different governors can save battery or enhance performance depending on the type of governor.
There are a lot of governors available. The traditional like interactive, ondemand, powersave etc. and custom made like smartass v1 and v2, ondemand+, inteliactive etc.
This thread is meant for all of us to try different governors for approximately a day and then report the battery stats and performance levels . I could have done this alone using different governors each day and finally reporting all of the stats. But dude, haven’t you seen Hackers? All of us together can do it better and faster and cover a larger range.
So as I said the plan is that people try different governors and report and then we make a final report.
The number of governors you can test depends on the number of governors you have in your kernel . No seriously, more the number of kernels you use, more the governors you can test since different kernels have different governors. (many kernels are available in the xda Original Android Development thread)
I use Linaro(Insanity) kernel ( http://forum.xda-developers.com/moto-g/orig-development/kernel-falcon-t2868126 ) that has 14 custom governors along with the 5 traditional governors out of which I will test intelliactive, intellidemand, ondemand+, lionheart, hyper, adaptive, abyssplugv2 and wheatley along with interactive, ondemand, powersave, performance and users
You can also test the governors I do or someone else does as it will help in crosschecking.
It will be very helpful if someone can test other popular governors like smartass v1 and v2, min max, scary, lagfree etc. (more the better)
The most important thing...What to post?
1) Battery Stats...use the app Battery Stats Plus and the inbuilt battery stats shower to know the stats. (dont forget to reset the battery stats when starting a new stats)
2) Overall speed of phone.....like time taken when switching apps or opening recent tasks.
3) CPU Stats....You can check these from TricksterMod in the'info' menu. (Don't forget to check the "warp counters" when starting a new test)
Please follow these few rules while testing (these are no hard and fast rules but try to follow them)
1) Keep the phone usage and settings same during all the tests
2) Keep the screen brightness as minimum as possible
3) Don’t use batter saving or performance enhancing apps.
4) Test for atleast a day.
Recommended app for kernel tweaking and viewing the performance – Trickster Mod Kernel Settings. https://play.google.com/store/apps/details?id=com.bigeyes0x0.trickstermod&hl=en
Yup…try to follow these and we are cool.
I am posting this thread for the sole reason that we can know how our phone reacts to different governors and to know the clear cut stats so that we can use different governors as desired.
I know it will be irritating to use a sluggish Governor for a whole day but please bear with it for 24 hours..
For newbies like me..be ready to see somewhat a big difference.
I hope that everybody participtes. :fingers-crossed:
Posting starts tomorrow.
Tommorow i will test intelliactive.
ondemand, change down_differential to 70 .. this slows down the 'race to zero' effect of the governor.. setting can be changed easily with an app like trickster, the default setting on kitkat is 10
this will smooth stuff right out, especially games and general scrolling.. unfortunately will eat battery a bit
try a simple game like original temple run to see the difference before and after
meangreenie said:
ondemand, change down_differential to 70 .. this slows down the 'race to zero' effect of the governor.. setting can be changed easily with an app like trickster, the default setting on kitkat is 10
this will smooth stuff right out, especially games and general scrolling.. unfortunately will eat battery a bit
try a simple game like original temple run to see the difference before and after
Click to expand...
Click to collapse
Yes, I am a noob...
'change down_differential to 70 .. this slows down the 'race to zero' effect of the governor.. '
Whaaaat?
Meuuks13 said:
Yes, I am a noob...
'change down_differential to 70 .. this slows down the 'race to zero' effect of the governor.. '
Whaaaat?
Click to expand...
Click to collapse
basically it makes the cpu governor wait longer when cpu usage is lower before clocking down the cpu.. remember this happens in milli seconds.. sometimes jumping/jerking/lagging in a game can be because the cpu is constantly being down and up clocked.
meangreenie said:
basically it makes the cpu governor wait longer when cpu usage is lower before clocking down the cpu.. remember this happens in milli seconds.. sometimes jumping/jerking/lagging in a game can be because the cpu is constantly being down and up clocked.
Click to expand...
Click to collapse
Oh..I got it..I appreciate your effort but here we are looking for exact battery and CPU stats