I am running Chad's 12-23 kernel on a mostly stock ROM, and have been testing between the on demand governor and the smartass governor, trying to determine which would give better battery life. I ran a log over a 1 minute period with the phone on/awake, but idle. I did NOT kill any background processes, and ran both tests back to back so running processes shouldn't have changed.
Over a one minute period, the governors averaged the following:
On demand
264 mhz
20% load
Smartass
371 mhz
14% load.
As a side note, the smartass governor scores slightly, yet consistently higher on quadrant, seems to run a much more stable framerate on the planet-and-moon graphics test.
so which should be better for batter, and why? lower speed, or lower load?
In general, smartass should provide better battery life than ondemand since it doesn't scale upwards as violently.
Sitting idle with the screen on isn't the best condition for comparing different governors. Since the governors affect the speed and level of scaling, you would want to test under conditions that have more dynamic processing needs.
While it doesn't answer all the questions you have, you might find this helpful:
Effects of CPU Frequency and Screen Brightness on Power Consumption
The funny thing is that even the On Demand governor on this kernel seems modified. On the stock kernel, on demand usually idles much higher, 600-700 mhz. So whatever changes Chad has made overall are causing on demand to be more conservative as well.
I don't really know a method to test under more dynamic circumstances. I'm simply observing in System Panel. But the logging feature it has doesn't get super detailed with CPU speed. Only the realtime monitor. About the only "test" I could do was to scroll the app list up and down on the system panel screen. This causes the mhz and load to jump up pretty much immediately to 800+ mhz. I did not see ANY difference in this between the two governors, they both seem to ramp up equally aggressively, and both would jump to about the same mhz.
bast525 said:
I don't really know a method to test under more dynamic circumstances.
Click to expand...
Click to collapse
You could set up scripts that run various commands/processes, with sleep times in-between.
Do you have Tasker? You could set up Tasks that not only would automate various processes, thereby exposing your CPU to dynamic (yet controlled) conditions, but Tasker now has %CPUFREQ which could record the current CPU frequency throughout the test.
There are also the Frequency Stats to the be found in SetCPU, Android System Info, or I'm sure a host of other apps. They show you how long your CPU has spent at any given frequency. The only catch is that I don't know how to reset those stats (as it's not really a function I use).
Since you are concerned with power use, you would also want part of your logging to include mA current being drawn from the battery.
Just brainstorming. There are a lot of ways you could set up more controlled tests.
OK, so digging a little bit, this should be even easier than I thought. The Frequency Stats are contained in /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
It looks like rebooting can reset them, but I haven't yet figured out a way to reset them without resetting the device. But it doesn't really matter Once you come up with a testing script, you can have it store a copy of time_in_state at the very beginning of the test, and then again at the end of the test. That way, you can simply compare the time_in_state at the end of the test to the one at the beginning to see just the influence of that test.
Related
I am new to android phones. And i have no experience about overclock.
Will my cpu easily break down due to keep overclocking?..
Honestly, i seldom change my cell phone model, i want my defy can stay a life at least 1.5yr.
i think overclocking can't really damage your phone, voltage can. so i suggest you keep the voltage around [email protected] (default is [email protected], so this should be fine), and if the phone doesn't hang or reboot, you're good to go but you could try lowering vsels, you know, the lower the voltage, the lower the power consumption, the heat and the chance to fry your cpu but i'm not sure!
Yep, 1 GHz is safe, I'm using [email protected] as well, and the CPU is capable to run easily at [email protected] continuously. The leaked Gingerbread ROM from Motorola uses 1GHz as well, so don't worry, you just have to find the safe vsel settings.
thanks for replying, i m currently using 1GHz @ 58 .. Everything is alright
Should I make the voltage as low as possible?
yeah, just to lower the power consumption and temperature, but it isn't necessary.
Can you share your voltage setting please..?
I do the stability test and it gets successful run for 5min then this means the setting is okay?
i don't overclock, just undervolt, here are my settings (with setvsel):
800MHz - 45vsel
600MHz - 30vsel
300MHz - 18vsel
up_threshold: 90%
actually if you wanna make absolutely sure your device is stable, you should run it like for an hour. but if it runs for 5 minutes without error that's quite okay, you shouldn't have problems with those settings
Thanks so much, i m trying to lower my voltage setting.
Besides, i want to ask about the battery temperature, what is the maximum temperature before getting damage to the cell? I usually goes up to 37~39 degree celsius.. is it normal?
mine is usually around 29-32 °C, but i have it undervolted, so idk. but 37-39 seems a bit high, that means the cpu temp is way over 40 degrees, you should check it out!
EDIT: tried stress testing for 20 minutes with [email protected], it went up to 35°C, so you should definitely find out what's wrong with your device!
I actually underclocked to 600MHz, since I couldn't see a big difference even at 1200MHz in normal usage. A Pentium3 at 4Ghz will still not perform as well as a slower clocked new CPU for example, CPU design is more important - what instructions it supports.
Battery life is more imprtant to me and heat is very bad for Li-ion batteries too.
Also I found changing the CPU governor to "interactive" made a difference in GUI responsiveness and I have had less stuttering.
nisamtetreb said:
I actually underclocked to 600MHz, since I couldn't see a big difference even at 1200MHz in normal usage. A Pentium3 at 4Ghz will still not perform as well as a slower clocked new CPU for example, CPU design is more important - what instructions it supports.
Battery life is more imprtant to me and heat is very bad for Li-ion batteries too.
Also I found changing the CPU governor to "interactive" made a difference in GUI responsiveness and I have had less stuttering.
Click to expand...
Click to collapse
so, what's your standby lifetime after underclocked cpu?
I can see the performance improved when i was watching flash video on browser. But honestly, i dont think there are anymore huge difference after overclocking..
But as the battery life still remains quite well, i will still keep overclocking to 1GHz.. Isn't it a good idea?
nisamtetreb said:
I actually underclocked to 600MHz, since I couldn't see a big difference even at 1200MHz in normal usage. A Pentium3 at 4Ghz will still not perform as well as a slower clocked new CPU for example, CPU design is more important - what instructions it supports.
Battery life is more imprtant to me and heat is very bad for Li-ion batteries too.
Also I found changing the CPU governor to "interactive" made a difference in GUI responsiveness and I have had less stuttering.
Click to expand...
Click to collapse
lol... What happend to HD and THD games... Did u try playing them at 600mhz??
Overclocking to 1 GHz with the right voltage values seems to be absolutely no problem for Defy.
BTW, does anyone know whether it's possible to set scaling governor to "Interactive" mode under Froyo? Gingerbread kernel let me set it, but I haven't found the way under Froyo.
Battery life was a little bit better, the display and 3G always draw a lot of power.
Standby time got better, but I don't use very low vsel any more due to errors in YouTube and dropped connection of radio streams.
Before I used 300-600-800 at 20-30-48, this was very stable in stability test, but for example Youtube would start showing "error playing video". After I increased vsel, it went away.
I mostly did it to lower temperature, optimal temperature for li-ion is around 25°C according to Wikipedia I think.
I don't play 3d games, they would benefit the most from overclock I believe.
Angry birds RIO for example would stutter for a second or two after a level loaded, but it would become as smooth as at higher clocks, when I wait for a second.
I hope flash gets better, when hardware acceleration gets enabled in Quarx's CM7.
I was running [email protected] for a month straight. No issues at all. The highest my temp reached was 112F after playing games for about an hour straight. I now just run it at [email protected], and it's plenty fast for me. I did some "testing" with all the options in SetVsel. It's not science sound, but if you use the Gingerbread Icon in the notification bar, and are running at stock (800 speed) you will notice when the CPU maxes out it doesn't even reach full capacity. I found Words with Friends to really use the CPU, and at 800 it pings the meter in the orange (The notification icon shows green, orange, and red for "zones"). If I overclock it at 1000 or above then the meter goes into the red. I don't know the exact number it switches from orange to red, but being at stock 800 is well below what the chip can really do since it doesn't even max out the meter. I hope I didn't confuse anyone. It makes sense to me.
weird...my cpu at any game reach the 800mhz
yet even in normal situations like browsing through the files on the phone it reaches 800mhz
and also despite the values i use in setvsel are not high(which is:
24 @ 300
34 @ 600
48 @ 800
)
the phone still reaches maximum 38C when i play games and if i set the value in the third vsel the games starts to hang!!
seems like i am the only one who have these problems..but why
anyone have any idea
im running stock arabic froyo btw
if someone can confirm to me that i can keep Arabic language if i installed another rom using custom restore in nandroid then i would be using prays or official 2.3 but no one answered me about that
anyway the important thing is anyone knows why my cpu temp is always high?
Well ambient temperature is important too. If it is 30°C where you live and your phone's temperature is at 35°C I'd say you are good. If the outside temperature is 10°C and your phone is dat 40°C I'd say there is something wrong (unless you were playing games or watching a movie).
in my opinion, it is definitely safe that you overclocking to the leaked moto level.
however, the voltage is still a mystery.
there's no constant conclusion about this.
i'm using [email protected], [email protected], [email protected], and it works fine for me
I'm getting really annoyed. No problems clocking up to 1100mhz with stock voltage (58). But changing the voltage settings, even slightly, makes the phone more or less unstable.
hi there.
I've been tinkering with voltages and cpu frequencies lately.
I noticed that, with stock voltage values, i have "900" for 122, 245 and 368 mhz.
Now the question is, leaving governors aside for a moment: if i set cpu minimum to 122 or 368, there shouldn't be any battery drain differencies, since they both have the same voltage value.
But technically if i have some background stuff going on, with screen off or when the phone is idle, they will be processed faster with 368 mhz, while with 122 they will take longer to carry on or even force the phone to work to get to a higher frequency to finish the task.
Now i maybe saying a lot of bullcrap since i'm not a developer nor a hardware guy,
but if what i said is true, then in theory it would not be the same if i put minimum to 368, it would actually be better for performance AND the battery??
No, as I have learned from another user here; even if the voltage is the same, the power draw is still different. 122mhz will still use the least amount of power
I'm wondering if anyone's undervolted and to what values.
I'm also wondering waht the deafult values are and if they change per kernel.
Is there a way to disable SetCPUs undervolting settings?
Has anyone improved battery life with profiles? On the Eris this was the only way to get usable battery life.
Or not. I gave up undervolting after I actually compared battery life at stock values vs undervolted (on my old phone, sgs4g) and discovered it does nothing for battery life.
Edit: undervolting "might" marginally increase standby battery life, but considering how good this phone already does... it certainly won't increase actual screen on usage.
Sent from my Galaxy Nexus using xda premium
Depends how low you under volt. Got more battery life, maybe about an hour, after finding optimal battery life on my gfs Gnex.
If you don't under volt correctly, of course it won't improve battery life.
From my sexy white, Nocturnaled HTC One X
If you're not overly comfortable with undervolting, then using one of the many kernels with Smart Reflex will do a mild undervolt for you. If you are comfortable, then the only way to find numbers good for your phone is to try and test. I tweaked mine down to the point that I was occasionally getting hot boots when the screen was off and media was playing. Tweaking the numbers back up added the needed stability. Even little things like kernel or ROM revisions can change what voltage is or isn't stable. Another example is that when I updated my Jellybro CM10 version the other night, along with updating leankernel from 4.1.0exp3 to 4.2.0, I had to increase a few of my voltages to avoid hot boots.
Just for example numbers, here are mine:
Code:
1350MHz -- 1200mV
1200MHz -- 1150mV
920MHz -- 1050mV
700MHz -- 950mV
350MHz -- 825mV
These numbers will vary from device to device and even between ROM/kernel combinations, so don't use them as hard fact.
Thanks. On a phone like this it might not make a huge difference but on the Eris (Where stock battery life could sometimes be 6 hours if you actually used your phone) an undervolted kernel with setcpu could turn those 6 ours into 48.
Thanks Cilraaz, I'll try those voltages out and benchmark a bit to see if they're stable for my system.
Two things I can say for sure:
1. you will have very limit battery gain by undervolting with Gnex, no matter how low you try.
2. undervolting will bring some stable issue if you get too low, like lose signal and reboot.
I am using Kernel Franco GPU 384 Stock rom on my 4.1.1 and did undervolting
Current configuration:
384Mhz
950mv
------------
729Mhz
1050mv
-----------
1036mhz
1125mv
----------
1228mhz
1275mv
-------------
I did not change the frequencies of overclocking, because I'm not using them.
I felt an improvement in battery consumption unless the unit is heating up.
Just curious - what kind of profiles are you using? I have a "Screen off" that's 350min and 700max. I figure that's fast enough f someone calls me.
I've read many times undervolting isn't worth it.
Hungry Man said:
Just curious - what kind of profiles are you using? I have a "Screen off" that's 350min and 700max. I figure that's fast enough f someone calls me.
Click to expand...
Click to collapse
I'm using the following with SetCPU: default (1350MHz-350MHz), charging, CPU temp > 64, and battery < 35%.
If you're using a kernel and governor that support hotplug, then you likely don't want to use a screen off profile. The combination of the two can tend to cause sleep-of-death or hot boots.
I Am Marino said:
I've read many times undervolting isn't worth it.
Click to expand...
Click to collapse
Most people don't want to spend the time to do it right.
I'm actually not used to the new kernels. I haven't messed with my eris in about a year and back them there was "smartass, on demand, performance," and some other one that clocked down instead of up
Can you explain th escreen off profile causing issues? I don't even know what hotplug is lol I've been out of Android for a long time.
Hungry Man said:
Can you explain th escreen off profile causing issues? I don't even know what hotplug is lol I've been out of Android for a long time.
Click to expand...
Click to collapse
Hotplug disables one of the CPU cores when the screen is off. Some governors, like hotplugx, will also attempt to disable a CPU core during periods of low CPU usage. For some reason, this combined with a screen off profile can cause some problems. I assume it's because of the "screen-off-max-freq" that Imoseyon mentions in the quote below.
Personally, I prefer the interactivex governor with leankernel by Imoseyon. From his kernel thread:
With interactiveX V2 (for gnexus), things are a bit different, since gnexus has built-in support for screen-off-max-freq for all its governors. I took the new interactive code in gnexus, added early_suspend support (screen off/on trigger), and then added logic to the code so the governor uses the phone's built-in hotplugging capability to turn off cpu1 when screen is off (and then turn it back on when screen comes back on). Cpu1 goes offline entirely - no idle, no sleep.
Click to expand...
Click to collapse
I think undervolting helps - my phone is running 728 - 1228 using the interactive governor, with voltages of 600 mV, 700 mV, and 800 mV (728 MHz, 1036 MHz, 1228 MHz respectively) and I haven't had any issues so far. I know there are some reports that say undervolting doesn't help much, but those are when people undervolt by like 50 mV, whereas here I'm going like 400 mV under lol. (Yes, smart reflex is off).
Thanks Cilraaz. Good to know.
So turning the screen-off profile could improve things? Honestly, my system does fine at 350mhz with screen off. Turning a core entirely off would probably help though.
If I use hotplugx governor that would disable one core when the screens off, right?
Hungry Man said:
If I use hotplugx governor that would disable one core when the screens off, right?
Click to expand...
Click to collapse
Hotplugx will disable a core when the screen is off or when there is low system load. Depending on your kernel/governor choice, other governors may do it also. On leankernel, for instance, interactivex will disable a core when the screen is off, but not on low system load.
Ok, thank you.
I haven't done any comparisons of before/ after since I undervolted/ underclocked first thing. But I was browsing for hours while listening to music while talking to a friend with GTalk. talked for about 1.5 hours with someone, Left it on overnight (10 hours), woke up, used it to talk (voice to text) to someone via GTalk, and it's 3:25PM right now and I still have a fair amount of battery life left.
I'd heard mixed things about the battery on this so I'm happy.
My voltages:
1650: 1300
1520: 1250
1350: 1175:
1200: 1125
920: 1000
700: 925
350: 900
I stress tested each one without a crash.
Hey guys, I'm just wondering what settings do you have on your setcpu for the best performance and battery life? I'm totally new to this lol
Sanks
kazemagic said:
Hey guys, I'm just wondering what settings do you have on your setcpu for the best performance and battery life? I'm totally new to this lol
Sanks
Click to expand...
Click to collapse
i i think that ondemand is the best for daily using... i'm using cm10 rom and i have some music problem so i'm using interactive and it's ok. if you don't use games or heavy apps, you can underclock it to 1ghz or even less and put on powersave.. but you have to try and find the best for you
My setup is a little complicated. I use the ondemand governor, then for the profiles I make it use powersave and under 760mhz between 1am and 8:30am which seems to really help during the night. Also set it to use 760mhz max when the screen is off.
When charging or above 40% battery I allow it to run full speed, but only when the screen is on, therefore helping charge times. On charge or above 80% I set the governor to performance.
In call I set the clock to max 1000mhz and conservative to try and allow calls on low-battery to work properly without lag but also without killing the battery.
I have a couple of other options set for very low battery ( < 12% ) too, but those are only to extend the battery if it's dying.
I wouldn't say all this is necessary... but I need my phone to keep working at all times as I use it for receiving business calls.
It's just a matter of playing around really... depends what you use the phone for. For the most part tell it to use lower clock speeds when you don't need them so much (when phone is off, during the night, during call etc) but you will really notice the speed difference if it's underclocked while you use it, so I tend to allow it to use full whack when screen is on, unless the battery is low.
I also set up profiles to make things like Bloons TD4 run in performance mode and min of 1000mhz, to keep them smooth . Drains the battery though!
lol setcpu does a really good job at battery saving. When using ondemand, my phone can last more than 2 days (if it's on standby)
Have you guys tried under-vaulting? What does it rlly do?
kazemagic said:
lol setcpu does a really good job at battery saving. When using ondemand, my phone can last more than 2 days (if it's on standby)
Have you guys tried under-vaulting? What does it rlly do?
Click to expand...
Click to collapse
If you mean decreasing the voltage on the CPU, no I haven't. From my experience in desktop PCs however, if the CPU voltage is too low it can lead to hardware issues and instability.
If something needs a certain amount of power, and you give it less, it will either try and draw more amps which increases heat and can fry components, or won't work properly. You could probably "under-volt" the CPU at the same time as reducing the clock speed however, but your performance will suffer. When the processor is set to be ondemand it underclocks itself when not in use anyway
The biggest battery drain is screen and radios, concentrate on using them less. Underclocking the CPU will make the phone last longer when in use, but usability will suffer and turn your super fast smart phone into a sluggish one. I only make mine stay underclocked when the screen is off, during a call, or on low battery. During general use I let it do its thing .
UV(Under volt) is actually not to bad. Don't ever set those values at boot, else when they are too low, it will cause BOOTLOOPS. It just reduces the amount of power allowed for the cpu to use, thus it won't use more than required. You can't really ask a person for his/her uv values, as no 2 chips are created equal.
People stating that they UC(underclock) their device is not quite right. We don't have much control over our cpu's to be honest. If you run tegra stats whilst using you're phone, you'll see what I mean. It will sometimes(happens quite often) just bump up to higher frequencies to which you UC them. Also as soon as the screen is locked and unlocked the max cpu frequency set by the governor will just return(for example: say stock is 1500mhz, and you set it to 1400mhz, it will return to 1500mhz after an unlock). Ondemand is very very good for battery and performance. But remember you have to tweak those values individually in order to optain the best possible performace for the given task you want. Whether it is for battery or performance.
It's actually also a lot better to just tweak those values as to TRY and uc. Uv will stick, UC not!
Here is a small example as to battery saving and performance values for ondemand governor:
sampling rate:---------60 000 ----- 30 000
up threshold:--------------95 ----- 60
sampling down factor:-------2 ----- 8
powersave bios: ------------3 ----- 0
ignore nice load:------------0 ----- 0
io is busy:------------------0 ----- 0
I've been thinking a lot about governors lately.
I'm thinking now that you want the cpu to ramp up as fast as possible to complete the task as fast as possible and then go back to sleep, i.e. ondemand.
A given task takes a specific number of clock cycles to complete so your clock frequency simply dictates how long until the task completes.
A cpu has static losses, leakage currents and whatnot, that are there regardless of frequency.
So unless your energy per clock cycle goes up with frequency, it seems you'd want to run as fast as possible to minimize static losses.
I also would guess you want the second core to stay off as much as possible.
Any thoughts or opinions?
MrTallboy said:
I've been thinking a lot about governors lately.
I'm thinking now that you want the cpu to ramp up as fast as possible to complete the task as fast as possible and then go back to sleep, i.e. ondemand.
A given task takes a specific number of clock cycles to complete so your clock frequency simply dictates how long until the task completes.
A cpu has static losses, leakage currents and whatnot, that are there regardless of frequency.
So unless your energy per clock cycle goes up with frequency, it seems you'd want to run as fast as possible to minimize static losses.
I also would guess you want the second core to stay off as much as possible.
Any thoughts or opinions?
Click to expand...
Click to collapse
Sounds a lot like ktoonservative.
Aerowinder said:
Sounds a lot like ktoonservative.
Click to expand...
Click to collapse
Yeah, ktoonservative lets you configure pretty much everything. The thing I was struggling with was setting up_threshold and sampling rate. It seems like depending how fast it's evaluating load, processes could build up and force the second core on when it isn't really needed. It seemed like the 2nd core turned on less with a faster sampling rate.
I don't know the down side of sampling too fast.
Pegasusq seems pretty cool in that the 2nd core turns on based on frequency and queue rather than just load. You can pretty much control exactly when the 2nd core comes on.
I'm trying out msm-dcvs right now even though I don't really know what it does and it's apparently not configurable. I'm not on ktoonsez at the moment so I don't have many choices.