Related
Hi, just another cpu governor question:
Smartass VS Interactive, 122/710
Ive notice this behavior with these two via OS Monitor:
Interactive: This mod seems to adjust the cpu frequency based on current cpu usage, from 122 to 710 (and some steps between these two, again based on usage) - is my thinking correct?. Same should be for sleep, where is no cpu usage, therefore 122mhz or so.
Smartass - based on interactve, expected to be better: This one is also adjusting the cpu frequency when needed, but in ON mode its from 480 to 710 and when sleep its from 122 to 352.
When I know these two information (assuming they are correct) the interactive governor seems to be better for battery saving with same performance (idle system for few seconds - 480mhz vs 122mhz). Or is there any significant performance difference when interactive got such a huge scaling range? Did I miss something relevant when comparing these two?
Copy-Pasting a post from arco which explains Smartass:
"Smartass caps the frequency when screen on to 480 MHz to ensure responsiveness. This also helps with video playback being smooth, as it otherwise will begin to stutter when the frequency is lower than this."
The Interactive governor is designed to reach maximum speed with no lag, so there should not be any need to raise minimum speed just because the screen is on, but the smartass governor has been optimised for android so it must be a good choice.
Personally, I am testing the Conservative governor which should take about 2 seconds to get from min to max speed, and I am not seeing any difference from on-demand.
Standby battery life is improved by dropping min speed, you don`t NEED to change anything else.
I have been investigating this matter for 2 weeks now. Using SetCPU to set the governor and CPU Spy for monitoring, here's what I typically get on my Nexus S with Netarchy Kernel.
Ondemand
1000Mhz: 3%
800: 1%
400: 0%
200: 0%
100: 12%
Deep Sleep: 84%
Conservative
1000: 2%
800: 3%
400: 3%
200: 0%
100: 8%
Deep Sleep: 84%
Smartass
1000: 2%
800: 5%
600: 5%
400: 2%
200: 0%
100: 3%
Deep Sleep: 83%
Smartass looks more responsive but drains more battery. Surprisingly, ondemand should drain less battery than conservative.
What do you guys get?
Avoid the Conservative Governor - I am only using it for fun. It saves a small amount of power by picking up speed slowly, but wastes more by dropping speed even slower. I can improve that by messing with the source, but in standard form it is pretty hopeless.
SmartAss lets you drop speed in standby to ridiculously low levels without losing performance when the sceen is on. I couldn`t recommend anything else.
Ooops
There is a bug in the Conservative Governor : it is wasting power because it will not reduce CPU clock until CPU usage is below 10% (default).
Suggested fix:
--- /usr/src/ez/drivers/cpufreq/cpufreq_conservative.c 2011-04-25 01:51:20.000000000 +0100
+++ /usr/src/buzz35/drivers/cpufreq/cpufreq_conservative.c 2011-07-29 18:10:12.184895733 +0100
@@ -30,7 +30,7 @@
*/
#define DEF_FREQUENCY_UP_THRESHOLD (80)
-#define DEF_FREQUENCY_DOWN_THRESHOLD (20)
+#define DEF_FREQUENCY_DOWN_THRESHOLD (70)
/*
* The polling frequency of this governor depends on the capability of
@@ -524,9 +524,9 @@
/*
* The optimal frequency is the frequency that is the lowest that
* can support the current CPU usage without triggering the up
- * policy. To be safe, we focus 10 points under the threshold.
+ * policy. To be safe, we should focus 10 points under the threshold.
*/
- if (max_load < (dbs_tuners_ins.down_threshold - 10)) {
+ if (max_load < dbs_tuners_ins.down_threshold) {
freq_target = (dbs_tuners_ins.freq_step * policy->max) / 100;
this_dbs_info->requested_freq -= freq_target;
The conservative governor was designed to keep CPU usage between 20% and 80%, which seems fairly wasteful.
In early 2009 the code was changed to make it more like OnDemand, and the lower limit was (accidentally?) lowered to 10% (default). That "mistake" is still present in the 3.0 kernel so clearly no-one uses the conservative governor, but if they did I recommend setting the lower limit to 10% below the UPPER limit of 80% (or even 90%) to stand any chance of using less power than with on-demand.
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.
A couple weeks ago, I installed SetCPU to help with battery life. It did great! But, I didn't see the amazing improvement that I thought I would.
So, I did some research and found out about Profiles. Profiles are settings that you can make that will be applied when certain conditions are met.
Below are the profiles that I have created on my Nitro. I have seen 11 to 12 hours of medium use from my phone with these settings. If you have any suggestions on changes, please let me know. I'd like to find the absolute best settings and share them for everybody.
Profile Name: Screen Off
Conditions: Screen Off
CPU Max: 384Mhz
CPU Min: 192Mhz
Governor: powersave
Priority: 90, Exclusive
Profile Name: Charging Any
Conditions: Charging Any
CPU Max: 1512Mhz
CPU Min: 192Mhz
Governor: ondemand
Priority: 85, Exclusive
Profile Name: In Call
Conditions: In Call
CPU Max: 810Mhz
CPU Min: 192Mhz
Governor: ondemand
Priority: 80, Exclusive
Profile Name: Battery <= 10%
Conditions: Battery <= 10%
CPU Max: 594Mhz
CPU Min: 192Mhz
Governor: conservative
Priority: 75, Exclusive
Profile Name: Battery <= 25%
Conditions: Battery <= 25%
CPU Max: 972Mhz
CPU Min: 192Mhz
Governor: conservative
Priority: 70, Exclusive
Profile Name: Battery <= 50%
Conditions: Battery <= 50%
CPU Max: 1242Mhz
CPU Min: 192Mhz
Governor: ondemand
Priority: 65, Exclusive
Profile Name: Battery <= 75%
Conditions: Battery <= 75%
CPU Max: 1350Mhz
CPU Min: 192Mhz
Governor: ondemand
Priority: 60, Exclusive
By setting the profiles base on battery percentage like that, you are sacrificing the speed to improve battery life. It works in some cases but has side-effect in many other cases:
- Firstly, for some tasks that requires high CPU, apparently you need more time at lower speed, so power consumption for CPU is the same but more power needed for longer screen on -> worse battery life
- Secondly, the more profiles you use, the longer it takes for SetCPU to decide and change CPU speed, so the responsiveness is lower
For you screen off profile, if you use powersave governor, your CPU always runs at min speed, so setting the max speed at 384 MHz is meaningless.
For me, the only profile I use is the screen off profile with min = 192MHz, max = 432MHz, governor = ondemand, so that my phone will wake up faster when there's a call (otherwise you will have to wait a little bit before you can sliding Answer/Reject)
noemtfj said:
By setting the profiles base on battery percentage like that, you are sacrificing the speed to improve battery life. It works in some cases but has side-effect in many other cases:
- Firstly, for some tasks that requires high CPU, apparently you need more time at lower speed, so power consumption for CPU is the same but more power needed for longer screen on -> worse battery life
- Secondly, the more profiles you use, the longer it takes for SetCPU to decide and change CPU speed, so the responsiveness is lower
For you screen off profile, if you use powersave governor, your CPU always runs at min speed, so setting the max speed at 384 MHz is meaningless.
For me, the only profile I use is the screen off profile with min = 192MHz, max = 432MHz, governor = ondemand, so that my phone will wake up faster when there's a call (otherwise you will have to wait a little bit before you can sliding Answer/Reject)
Click to expand...
Click to collapse
I haven't seen any responsiveness problems... And I'd actually like having a phone that I don't have to charge ever 3 hours over one that is unnecessarily fast.
mattman86 said:
I haven't seen any responsiveness problems... And I'd actually like having a phone that I don't have to charge ever 3 hours over one that is unnecessarily fast.
Click to expand...
Click to collapse
His point was that scaling your CPU back so significantly isn't necessarily going to give you better battery life, and may even make it worse. When the phone is running at a slower speed, it takes longer to do certain things, which means your CPU/screen will be turned on for longer. Of course it entirely depends on what you're doing on the phone.
I think you might get just as good battery life by using interactive 1.2GHz all the time. People assume governors like interactive will destroy their battery but you'd be surprised.
mattman86 said:
I haven't seen any responsiveness problems... And I'd actually like having a phone that I don't have to charge ever 3 hours over one that is unnecessarily fast.
Click to expand...
Click to collapse
If you have to charge your phone every 3 hours without SetCPU then I suggest you buy a new phone or new battery rather than playing with SetCPU
drumist said:
His point was that scaling your CPU back so significantly isn't necessarily going to give you better battery life, and may even make it worse. When the phone is running at a slower speed, it takes longer to do certain things, which means your CPU/screen will be turned on for longer. Of course it entirely depends on what you're doing on the phone.
I think you might get just as good battery life by using interactive 1.2GHz all the time. People assume governors like interactive will destroy their battery but you'd be surprised.
Click to expand...
Click to collapse
I don't do much with my phone in the way of heavy gaming or video watching. I am going off of the last couple days of having SetCPU enabled and getting almost 15 hours of medium use out of my phone.
noemtfj said:
If you have to charge your phone every 3 hours without SetCPU then I suggest you buy a new phone or new battery rather than playing with SetCPU
Click to expand...
Click to collapse
It was an arbitrary number.
Does anybody find this kind of post meant to make peoples phones better helpful? It seems like every time I post something that I personally have found to make the Nitro even more awesome gets a tone of comments basically telling me that none of it will ever work. I'm sure that if people would just try the things I post, they would be happy.
my setcpu setting-> uninstall
i found it did more harm than good. jd ultimate handling screen dimming&wifi with simple ondemand gov works much better for me.
scott0 said:
my setcpu setting-> uninstall
i found it did more harm than good. jd ultimate handling screen dimming&wifi with simple ondemand gov works much better for me.
Click to expand...
Click to collapse
That what I've heard also... But I found that JD ran my battery down in about 6 hours without me even touching it one day.
If you have any suggestions on settings for it, I'd love to give them a try.
mattman86 said:
That what I've heard also... But I found that JD ran my battery down in about 6 hours without me even touching it one day.
If you have any suggestions on settings for it, I'd love to give them a try.
Click to expand...
Click to collapse
yeah, i guess it's diff for everybody, just like the roms eh, some get great batt perf on 1 and sucky on another and someone has exactly opposite.
anyhoo, my jd ultimate settings are
Status
advanced profile
graphical notification->quickbox
Controls
wifi enabled->wifi preferred
brightness min 20% mid 45% max 150% (gotta get the most of this screen in the sunlight!)
light sensor fast
cpu min 192 mid 918 max 1512
governor ondemand
schedules
none, i also turned off night schedule as i have the phone plugged in during those hours.
triggers
Apps enabled
Configure->configure apps allow on during screen off->pandora
Location enabled
****************i find it makes a world of difference to give jd =>3 days to get it all right.
make sure setcpu is out of the way as well.
I am using Paranoid Android 3+ (the latest Alpha 5 version) and use the kernel that came with the ROM. I posted a couple pictures of my problem. The standby time is great. But I feel I have a problem because once I use my phone, the battery drains at a fast rate (hence the small screen-on time of 33 minutes). I dont believe the battery should be low given the low screen-on time. How can I check what is killing my battery? Im not sure if this info. is important, but I flashed AK Rubik kernel then Franco, but reverted back to the Paranoid Android kernel. Could that have affected my battery in a negative way? I would also like to know of some good kernel tweaks, ad CPU control options I should use. I'm using ROM toolbox and I have a profile set to "Charging/Full"; Gov: "Performance" 920 MHz Max, 350 Min. Priority set to 50. And another profile set to "Battery <25%"; Gov: "Powersave" 700 MHz Max, 350 MHz Min. I/O scheduler for both is "cfq".
Anyone have any ideas on what I can do to improve my battery life? Any help would be greatly appreciated!!
If u are using the fulmics 6.1 which is your best kernel so far for this rom???
Is it better than fulmics stock kernel??
Pros and Cons???
Solid Kernel is really smooth (you will see a significant difference overall and in antutu 3d section). If you leave the settings as is, however, it will drain the battery quickly and you will get around 3 hours sot with moderate usage(throughout a day). I use the following kernel aduitor settings and they make a difference without compromising too much in my experience.
!(Backup system partition in twrp before modifying anything)!
Assertive display: On if mostly indoors, off if mostly outdoors
Cpu: Max freq.=2457 Min freq.=300 Input boost=1497
Hotplug: Idle freq.=1574 MinCpuOnline=2 Multicore power savings=enabled (aggressive causes heating)
Cpu Voltage: (undervolt) -100mv for lowest 3 freqs, -50mv for highest 3, -75mv for all between those
Thermal: Set limit for 70 degree celcius
Gpu: governor= msm adreno tz, Gpumin=200, adreno idler on, idlewait=3, set all other sliders in the middle for other idler settings. (Adjust few steps based on your experience) also you can use 300mhz gpu min freq for buttery smooth performance.
!All those are based on personal experience so it is possible that this condiguration may not work for you!