I was just wondering what people get for battery life with miui 1.7.8 and OTB .13 kernel.
Also, what does overclock actually mean? Does it mean that setting the min and max to 1400Mhz in Voltage Control or remain the min to 100 and max to 1400Mhz?
I'm currently on noop, ondemand and min=100Mhz, max=1400Mhz with nothing UV'ed.
Please help me to get better battery life!!!!!!!!
Your CPU by default can do, unmodified, a certain number of commands per second. These commands are measured in Hertz, thus a 1GHz processor does about 1 billionish commands per second. Overclocking means you allow your processor to do more commands in the same time frame. The downside to this, however, is that more electricity is flowing through the CPU, thus draining the battery more. Having a lower clock speed will save some battery life.
That being said, I have kept my CPU clocked at maximum of 1GHz, with the I/O Scheduler set to deadline and the CPU Governor set to smartass, and I'm getting about a day out of my battery, maybe a little less. I have no idea if that's the "optimal" battery saver setting, but it works for me.
I do have a question, though... What do those two settings mean, anyway?
1n73rn37_j3d1 said:
Your CPU by default can do, unmodified, a certain number of commands per second. These commands are measured in Hertz, thus a 1GHz processor does about 1 billionish commands per second. Overclocking means you allow your processor to do more commands in the same time frame. The downside to this, however, is that more electricity is flowing through the CPU, thus draining the battery more. Having a lower clock speed will save some battery life.
That being said, I have kept my CPU clocked at maximum of 1GHz, with the I/O Scheduler set to deadline and the CPU Governor set to smartass, and I'm getting about a day out of my battery, maybe a little less. I have no idea if that's the "optimal" battery saver setting, but it works for me.
I do have a question, though... What do those two settings mean, anyway?
Click to expand...
Click to collapse
What do you mean by two settings?
Like, what are I/O Schedulers and CPU Governors? That last question was me hijacking the thread.
Related
I'm trying to use Linpack to judge how my phone is performing...I am getting just under 5 MFLOPS (4.945), but the time it takes is 16.95 seconds. I've seen people on here have it under 2 seconds....what am I doing wrong or need to do to my phone to make it better?
Some time ago, the Linpack for Android app was changed so that it would run for a substantially larger period of time.
I suppose that was done because there was a lot of "scatter" in the results on a given phone due to competing processes and kernel activity - so running the test longer sort of averages those things out. I think those "2 second" reports you saw are for older versions of the app.
Having said that, the Linpack benchmark is effectively meaningless - it measures floating point performance, which is something that your phone only rarely engages in during routine operations.
If you enable JIT, kill off as many unrelated apps as possible, crank up your overlocking, set min CPU speed to = max CPU, and turn on the performance governor ... you'll get a good score ... but the last three tweaks will eat your battery up, and you will only see improvement in interactive behaviors of the phone which correspond EXACTLY to your max CPU frequency.
For day-to-day use, where you will be concerned with battery life AND the long-term life of the phone (OC'ing @ 810 has burned out a number of Erii already), about the best you can do is:
- enable JIT
- use the interactive or smartass governor
- set your max CPU to 710, 729, or 748
- occasionally trim back unused apps (manual kill)
The Linpack benchmark on any given phone is nothing more than a proxy for max CPU frequency - if you run several trials of it, changing the max CPU frequency each time, you will see that the benchmark number is exactly proportional to the max CPU frequency.
bftb0
Hi guys,
Please clarify on the following points:
1. Are there any major differences among the CPU governers??? I use Smartass because I see a major group of people using it.
2. What are the optimal values for Min and Max CPU speed? And are there any factors based on which we have to decide the values or we can keep anything we wish?
Thanks in advance
Frequencies and their effect on battery here
^Pretty much what you're looking for. Just analyze the chart and test it for yourself too. Also read, read
For governors:
smartass governor - 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.
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. - SetCPU website
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. - SetCPU website
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 the same value and using ondemand because the system will not waste resources scanning for the CPU load. This governor is recommended for stable benchmarking. - SetCPU website
powersave
Available in some kernels. It will keep the CPU running at the "min" set value at all times. - SetCPU website
userspace
A method for controlling the CPU speed that isn't currently used by SetCPU. For best results, do not use the userspace governor. - SetCPU website
interactive
Advantages:
+ significantly more responsive to ramp cpu up when required (UI interaction)
+ more consistent ramping, existing governors do their cpu load sampling in a workqueue context, the 'interactive' governor does this in a timer context, which gives more consistent cpu load sampling.
+ higher priority for cpu frequency increase, rt_workqueue is used for scaling up, giving the remaining tasks the cpu performance benefit, unlike existing governors which schedule rampup work to occur after your performance starved tasks have completed.
Click to expand...
Click to collapse
I hope that makes it clearer
Kira.Lawliet said:
Frequencies and their effect on battery here
^Pretty much what you're looking for. Just analyze the chart and test it for yourself too. Also read, read
I hope that makes it clearer
Click to expand...
Click to collapse
Wonderful post! Thank you.. even though the post was too technical for a n00b like me, I could grasp info out of it. Sure it helped me.
As I understand solution for "998 MHz with screen on" bug is found: http://forum.xda-developers.com/showthread.php?t=1225411&page=17#post16944722
We need to replace only one governor.
I don't want to play with different ROMs and kernels and I'm looking for simplest solution.
Is it possible to compile it as a module ("ondemand_mod" for ex.) and add it to stock ROM?
Or any other (simple) way?
Wrong section ...
Sent from my X10i using Tapatalk
Why wrong Section, this is Development to get the CPU Governor working correctly
Wolfbreak said:
Why wrong Section, this is Development to get the CPU Governor working correctly
Click to expand...
Click to collapse
Exactly, this is the right section for such request.
However, I can't help but wonder: is this really a "problem"?
No offence to anyone, but I find that the phone is very snappy
when on max frequency... The big problem for me, would be if it
didn't go into Deep Sleep immediately after turning the screen off
and stayed at min frequency for an extended period.
When the screen is on (aka using the phone) I'd like it to be as FAST
as possible. That's the reason I use the minmax governor.
Anyway, again, I don't mean to argue with anyone, I am just
presenting my point of view.
My_Immortal said:
However, I can't help but wonder: is this really a "problem"?
No offence to anyone, but I find that the phone is very snappy
when on max frequency... The big problem for me, would be if it
didn't go into Deep Sleep immediately after turning the screen off
and stayed at min frequency for an extended period.
When the screen is on (aka using the phone) I'd like it to be as FAST
as possible. That's the reason I use the minmax governor.
Anyway, again, I don't mean to argue with anyone, I am just
presenting my point of view.
Click to expand...
Click to collapse
Yes, it's really problem.
Higher frequency - higher power consumption. Moreover - with higher frequency CPU used with higher voltage so consumption is even more higher. So at 998 MHz CPU eats about 5 times more battery than on 246MHz.
With properly tuned governor I don't feel any real lags or slowdowns.
And, when screen is on CPU load is usually is lower than 20% at full frequency. So I don't want to waste my battery.
As I see it's possible to compile and use governor as module.
Could someone compile it? And assemble as xRecovery package?
Or point me where to read about compiling for arm, where to get tools and so on...
Karlson2k said:
Yes, it's really problem.
Higher frequency - higher power consumption. Moreover - with higher frequency CPU used with higher voltage so consumption is even more higher. So at 998 MHz CPU eats about 5 times more battery than on 246MHz.
With properly tuned governor I don't feel any real lags or slowdowns.
And, when screen is on CPU load is usually is lower than 20% at full frequency. So I don't want to waste my battery.
Click to expand...
Click to collapse
The thing is, on 245 MHz, you can't get any kind of decent performance.
Try this: set the minimum and maximum CPU frequency with SetCPU to 245 and attempt to use the phone normally.
Also, you might be right about voltage, but if the CPU is forced to work on lower freqs when it actually needs higher, there's definitely stress and increased battery consumption.
My phone lasts for more than 24 hours and it's always at max frequency when the screen is on. No lag, no freezes, no drain.
I do agree that the ondemand governor might not function as expected but I fail to experience the actual problem. That might be just me though.
Xperia X10i via Tapatalk
My_Immortal said:
The thing is, on 245 MHz with high load, you can't get any kind of decent performance.
Try this: set the minimum and maximum CPU frequency with SetCPU to 245 and attempt to use the phone normally.
Also, you might be right about voltage, but if the CPU is forced to work on lower freqs when it actually needs higher, there's definitely stress and increased battery consumption.
My phone lasts for more than 24 hours and it's always at max frequency when the screen is on. No lag, no freezes, no drain.
I do agree that the ondemand governor might not function as expected but I fail to experience the actual problem. That might be just me though.
Click to expand...
Click to collapse
There is no need to work on 245MHz as proper governor rise frequency automatically when it's necessary.
And really no stress for CPU to work an low frequency at full load. Moreover - CPU will consume more power at 500Mhz with 45% load than at 250Mhz with 95% load.
Sometime I use phone for navigation - long time with screen on and very low load. In this scenario battery drains very fast.
And last one - I like to have everything working properly. In case that I'll really need high frequency all the time I'll use other governor. I just want to have a choice.
I need a simple solotion for this too..I use z kernel and I found that Thego2s kernel fixed this problem..I was going to flash that kernel but think that has a bug and stoucks on logo ..can some one sayas a simple way?
Yes, I think a lot of people would prefer to use just small and simple fixes rather than replacing the whole kernel with a lot of nice but (personally) unnecessary features.
I am waiting for developers to release a fix for this problam
I've install Rom Toolbox,
and i saw there is a "CPU slider" where i control the clock speed.
i've put it to 1000MHz instead of 1200MHz and tested it for several days
i really dont feel any difference in performance.
browsing seems same, games like asphalt is equally smooth.
heating is similar, equally warm.
the only difference is quadrant benchmark.
1200MHz scores 3200-3400
1000MHz scores 2600-2900
frankly speaking, i'm not sure if there's any difference in battery life.
is there any way to accurately test whether the clock speed affects the battery life?
i've seen other threads, where there are very different opinions.
some say it will improve battery life, and some say its worst.
http://forum.xda-developers.com/showthread.php?t=726019
Quote: (SetCPU doesn't make a difference in battery life, it can only shorten it. The kernal already has the best settings for CPU speed built in.)
http://forum.xda-developers.com/showthread.php?t=1305465
Quote: (if you are able to stand the side effects of underclocking, it will surely boost your batery life.)
On my SGS2 program called CpuSpy shows that 1200MHz is about 1% of total cpu time (remember that governor is ondemand and CPU is at 1200 only when need it). If power consumption is directly proportional to clock speed by limiting it to 1000MHz you will get about 20% less power usage by 1% of time... looks like 0.2% power saved ? Soo if Your phone works for about 48h on one charging this way You can get about 6 extra minutes. It's just my guess...
Also have to consider if slower cpu causes screen to eat power for longer time... (because You have to wait longer for operation to complete)
slig said:
On my SGS2 program called CpuSpy shows that 1200MHz is about 1% of total cpu time (remember that governor is ondemand and CPU is at 1200 only when need it).
If power consumption is directly proportional to clock speed by limiting it to 1000MHz you will get about 20% less power usage by 1% of time... looks like 0.2% power saved ? Soo if Your phone works for about 48h on one charging this way You can get about 6 extra minutes. It's just my guess...
Also have to consider if slower cpu causes screen to eat power for longer time... (because You have to wait longer for operation to complete)
Click to expand...
Click to collapse
HI, thanks for replying. I understand what you mean. the phone dont operate at 1200MHz all the time. but when using browser, and playing games, such as asphalt, it runs at max CPU usage almost the entire gaming duration.
Anyway.....
the real question is whether the clock speed is directly proportional to the battery consumption.
while reading your post, i thought of a brilliant ideal how to verify this.
the CPU slider not only allows you to set the max CPU speed,
you can set the min CPU speed as well.
So, i thought of an experiment, lets set the min & max CPU to 1200MHz,
this way, the phone will be running constantly at max CPU even when its idle.
let the phone be turn on till it run out of battery, record the time, T1.
then repeat again with max and min CPU set to 1000MHz.
record the time it is turn on till it run out of battery, record time as T2,
then compare T1 & T2, this could certainly work.
it would be nice if any member here happens to have 2 sgs2, and tried them ;-)
There are two more things to consider
1. CPU is not the only element that consumes power.
2. SGS2's Exynos is always clocked at 200MHz when the screen is off - check if this minimum slider affects that too.
Please let know how your experiment goes.
Regards
when the screen is off, the phone will be in "deep sleep" state. i think thats less than 200MHz.
anyway, i wont be doin this experiment any time soon.
you see, this is my only phone, i need to use it.
i dont have much oportunity to leave it and wait for it to run out of juice.
still, i'll try it when i have the chance.
Currently it looks like the swappiness in kernel settings is set to 100%...typically this is around 60...on hi ram devices it might be set to something low like 10 to be resistant to swapping...still 100% seems really high....I've also noticed when several apps have been installed to the device after a while of sitting it becomes unusable due to non-responsiveness. Reboot it and it will be allright for a while...so I think the apps are eating up the memory and the swap is dragging everything to a crawl. Anyone have some suggested "Kernel Adiuter" settings?
famewolf said:
Currently it looks like the swappiness in kernel settings is set to 100%...typically this is around 60...on hi ram devices it might be set to something low like 10 to be resistant to swapping...still 100% seems really high....I've also noticed when several apps have been installed to the device after a while of sitting it becomes unusable due to non-responsiveness. Reboot it and it will be allright for a while...so I think the apps are eating up the memory and the swap is dragging everything to a crawl. Anyone have some suggested "Kernel Adiuter" settings?
Click to expand...
Click to collapse
I had tons of performance isssues, which were easily solved by flashing Squid Kernel on my device. I followed the isntructions given by squid my device performance much better and also has great battery life.
squid2 said:
My new Lionfish governor combines traits of the conservative, ondemand, and interactive governors. It is designed to maximize battery life without noticeably impacting performance. It responds quickly to heavy loads (similar to ondemand and interactive) while staying within the region of optimal CPU performance per watt. With moderate loads, it periodically votes to raise, maintain, or decrease the frequency. When there are enough votes to change the frequency, it is ramped up and down gradually. The voting mechanism reduces frequency jitter compared to ondemand and conservative. My testing had found that this governor uses moderate frequencies (where efficiency is optimal) more effectively than interactive, ondemand, and conservative. This improved frequency distribution results in a moderate reduction in CPU power consumption while maintaining responsiveness comparable to the interactive governor.
IntelliPlug is enabled by default in this kernel. The default governor is still interactive. For optimal performance and battery life, I recommend using the fiops IO scheduler, Lionfish governor, and lowering the CPU idle frequency to 400 MHz (from the default of 800 MHz). The combination of IntelliPlug, Lionfish, undervolting, and reducing idle to 400 MHz should result in a CPU power consumption reduction of around 20% compared to the stock kernel. This will typically correspond to 8-15% increase in battery life compared to the stock configuration.
Click to expand...
Click to collapse
famewolf said:
Currently it looks like the swappiness in kernel settings is set to 100%...typically this is around 60...on hi ram devices it might be set to something low like 10 to be resistant to swapping...still 100% seems really high....I've also noticed when several apps have been installed to the device after a while of sitting it becomes unusable due to non-responsiveness. Reboot it and it will be allright for a while...so I think the apps are eating up the memory and the swap is dragging everything to a crawl. Anyone have some suggested "Kernel Adiuter" settings?
Click to expand...
Click to collapse
Wikipedia says: "Swappiness can be set to values between 0 and 100 inclusive. A low value causes the kernel to avoid swapping, a higher value causes the kernel to try to use swap space. The default value is 60, and for most desktop systems, setting it to 100 may affect the overall performance, whereas setting it lower (even 0) may decrease response latency." This value set to 100 is definitely the source of non-responsiveness. I would recommend 40 if you are using apps that are heavy on RAM (advanced games) and 60 if not but you may find better values yourself.