Related
Hi, I spend last few days optimizing voltage table on my Desire and it left me wondering.
I bumped into several situations where 2 or 3 frequencies would be stable on the same voltage level. My question is, theoretically, if 300MHz would use the same voltage as 800MHz, would the power consumption increase proportionally or would it remain fairly similar?
Seeing that 300MHz would need more burn time at the same voltage to complete a task that 800 MHz would do in fraction of that time and then idle, this leaves me puzzled. Is it better to always use highest frequency of the group with same voltage for better efficiency? Or does the slower frequency actually consume less power even though it has to work longer and uses the same voltage?
Please enlighten me or discuss
I would also like to be enlightened on this.
AFAIK your assumption is on the right track, get the job done as quick as possible & get back to idling...
Slightly off topic, but somewhat relevant
byrong did a great write up on the effects of cpu speed vs screen brightness power consumption here that may be be of interest...
Interesting but still doesn't answer one question:
If my 245, 368 and 768MHz would be stable at the same voltage, does it matter if I set 768MHz as my minimum/idle frequency instead of 245MHz? Would is consume more power in the long run say on conservative governor?
And what about the screen-off profile? Consider a scenario when I'm playing an MP3 while screen is off and the player will still take a lot of CPU power to pre-buffer the song, apply equalizer, post-processing etc. Now would that nearly constant burn theoretically consume more power on the 245MHz or 768MHz? It still has to do the same work and 245MHz should just have higher constant load, right?
And how about complete idle. Does it really matter if I idle on 245 or 768 MHz if the voltage and actual work done is identical?
This is I'm sure something everybody is asking but nobody knows the real answer. Unless I'm speaking utter rubbish it's perhaps time to run some tests.
Even if the voltages are the same for different frequencies, I'm sure higher frequencies draw higher amounts of current (as shown in byrong's research, although his voltage tables were not stated). If you change your min cpu freq from 245 to 768 MHz I'd almost guarantee more power consumption, even when idle. I could be wrong though. If you're so curious, why don't you try and post back?
I might be wrong but my $0.02
From what I can remember in class, Power = voltage x current
To do the same amount of work, supplying lesser voltage would mean more current is consumed. That said, if less work is being done at the same voltage, less current would be consumed.
So running the CPU at a slower clock cycle means less work is being done, so less current consumption, compared to running it at full 768MHz.
I think ... ;p
Well I think I will make some empiric testing as soon as I find a way to log current current (yea funny ) to a file.
Even if your $0.02 are right, you're still talking about drawing less current over longer time or more current in a short burst. Of course there are apps like games that will probably take as much horsepower as they can get for redrawing the screen - in that case lower constant frequency is better, because higher frequency would actually have to do more work - drawing more FPS just because it can. For minimum frequency the situation is completely different as the apps only require bursts of workload.
nik3r said:
Well I think I will make some empiric testing as soon as I find a way to log current current (yea funny ) to a file.
Click to expand...
Click to collapse
I thought you read waydownsouth's link?
In the methodology section byrong states he used CurrentWidget to log current over time. You can also use Battery Monitor Widget.
By the way, his methodology is pretty excellent as it minimizes as many variables as possible, and he wrote his own script to keep the cpu working at a controlled rate. I think at a minimum, you should put the phone in airplane mode while conducting the tests.
I've looked around and haven't found much. I anyone know what would be a good overclocked setting but save alot of battery?
Sent from my DROID X running MIUI
It varies from phone to phone, unfortunately.
Jrummy's "Android Overclock" is what I personally use...
My settings are:
Low Voltage 1.2GHz Preset (Set at Boot)
And I then enable profiles for some battery saving.
Profiles:
Screen off %100 priority 800MHz max 400MHz min.
Temp > 42c %90 priority 800MHz max 400MHz min.
Battery < 30% %80 priority 800MHz max 400MHz min.
Screen On %70 priority 1200MHz max 400MHz min.
This ensures my phone is at 800MHz while the screen is off or while the temp is high or while my battery is low (I like that one so I can draw the last little bit of battery out a bit.) I put the Screen On profile just as a fail-safe to make sure I revert to 1.2 max while the screen is on unless the other conditions are met.
You can even make your screen off profile all the way down to 400MHz max and min...but that just makes me nervous for some reason.
I never had a problem for the few days that I used it, but I'm a bit OCD with some things.
I was worried that I wouldn't receive calls or my alarm wouldn't work or something like that.
Hopefully this helps a bit.
Try that as a starting point, and adjust as you see fit.
Awesome this helps alot, i have a few profiles set, mainly so up like yours lol, ill looking the lower voltage cause before when i was overclocked I drained battery like no tommrow
Sent from my DROID X running MIUI
I haven't been able to find any info on undervolting the Xoom, so have started this thread in the hope that some may find it beneficial.
What is undervolting?
It basically involves reducing the amount of electrical voltage running through the CPU. It does not affect the speed of the CPU at all, just the amount of power that it uses. The stock configuration of CPUs usually has a fairly high voltage, to cater for the fact that CPUs are not exactly identical.
Why undervolt?
Reduce power consumption, and therefore increase battery life.
Why not undervolt?
Can affect stability, and there is a small risk of damage to your device.
Disclaimer: Undervolting, like overclocking, does have the potential to damage your device. It's very rare, but not unheard of. I've never had a problem, but you may. Good luck, and don't blame me.
My config:
Model: MZ601 Xoom
Kernel: Tiamat Xoom v2.1.0
Undervolting software: SetCPU 2.2.4
My voltages before UV:
MHz mV
216 770
312 770
456 825
608 900
760 975
816 1000
912 1050
1000 1100
1200 1150
1408 1250
1504 1325
1600 1400
1704 1400
So after doing a bit of testing, I've found that I can lower my voltages noticeably throughout the range, reducing the amount of power my Xoom uses, and prolonging my battery.
My UV voltages:
MHz mV
216 770
312 770
456 775
608 825
760 875
816 925
912 975
1000 1000
1200 1075
1408 1125
1504 1175
1600 1250
1704 1325
Notes:
It is not possible to UV any less than 770 mV (with the kernel I'm using anyway).
Given that the mV for the 456 CPU frequency is so similar to 216, I set my minimum clock frequency to 456, which makes the device more responsive.
So, you may want to try these voltages, and see how they work for you.
To test: (Instructions for SetCPU)
Set your min & max speeds to the same frequency, for example 456.
Set the voltage of the 456 frequency to an amount lower that the current amount, for example 775. (It's generally best to adjust your voltage down only 25mv at a time.)
Perform a "Stress Test", for at least about 5 seconds.
If the device locks up or reboots, the mV is too low - try a higher mV.
Once you've found the optimal voltage for that frequency, move onto the next one, for example 608, then 760, etc.
If your device locks up or freezes during testing, you can force a reboot by holding down the Volume Up button, and the Power button.
The voltages I've used above may work for you, or you may have to increase them a little on your device. You may also get better voltages than me - if so, please post your results.
Battery test results
Performed some battery performance testing by doing the following steps:
1. Set the screen to not turn off, and brightness to 10% (screen needs to be on to keep the stress test running, and brightness low to minimise the battery drain of the screen, as that's not what we're testing).
2. Disabled all network connections (WiFi, Bluetooth, Data, GPS) to minimise battery drain by other factors.
3. Closed all other apps, and did not use the Xoom at all during the tests.
4. Charged Xoom to 100%.
5. Set CPU speed to 1504mhz using SetCPU (both min & max frequencies the same for accurate testing).
6. Unplugged the Xoom.
7. Ran "Stress Test" for 2 hours (give or take 20 seconds).
I performed the above steps for both stock voltage, and undervolted voltage. Results as follows:
1. For stock voltage (1325mV on Tiamit Tachi kernel), battery life went down to 62%.
2. For undervolted voltage (1175mV, which is nice & stable for me), battery life went down to 72%.
Findings:
I was expecting battery savings, but not quite this much.
Standard voltage (at 1504mhz) at this CPU load, drains at about 19% per hour.
UV voltage at this CPU load, drains at about 14% per hour.
Standard voltage at this CPU load, the Xoom would drain battery entirely after about 5.26 hours.
UV voltage at this CPU load, the Xoom would drain battery entirely after about 7.14 hours.
In addition to the battery savings, the Xoom was only slightly warm after the UV tests, but very warm after the standard voltage tests. (Standard voltage test was performed first.)
Note: For general usage (email, browsing, basic apps & widgets), the CPU is not as heavily used. But in situations where the CPU is heavily used (such as intensive games), these results show there is significant potential for battery savings.
super nice tips. Tq very much
126-608 -175
Others -150
This is my settings... no prob at all.
Would I use setcpu app or just use the Moray(in settings) or does it matter
rayhodge02 said:
Would I use setcpu app or just use the Moray(in settings) or does it matter
Click to expand...
Click to collapse
Not sure what the "Moray" is, but any tool capable of undervolting should be ok. I like and use SetCPU, but I've tried other tools on other devices in the past, and they did similar things.
nobody wants to share their result after trying?
Very good job, I try
Sent from my Xoom using xda premium
pls share ur best result
I try your results and they're unstable in function off the useful task, exemple impossible to play simple games.
That's all right just for basic tasks like navigation, music ...
Sent from my Xoom using xda premium
Hmm, your stress testing seems inaccurate.
I used your values and did a stress test at each frequency for around 10 seconds. No problem. But my xoom restarted just 5 mins later while I was surfing the net.
So I increased each frequency by 25-50 and it stayed stable since then.
for me i just underclock my xoom to 912mhz. it is almost as fast as 1ghz. and i save battery alot.
Gregus59 said:
I try your results and they're unstable in function off the useful task, exemple impossible to play simple games.
That's all right just for basic tasks like navigation, music ...
Sent from my Xoom using xda premium
Click to expand...
Click to collapse
Try bumping up the voltages a little bit at a time, until you find a stable setting. The settings I listed are what are stable for my Xoom (even intensive 3D games), but CPUs vary. What I get, others may not, and others may get better than me.
musashiken said:
Hmm, your stress testing seems inaccurate.
I used your values and did a stress test at each frequency for around 10 seconds. No problem. But my xoom restarted just 5 mins later while I was surfing the net.
So I increased each frequency by 25-50 and it stayed stable since then.
Click to expand...
Click to collapse
They're not 100%. The longer you stress test, the more likely the CPU is stable, but 10 seconds gives a general idea. If unstable, just do as you did, and increase by 25mv or so.
omnia1994 said:
126-608 -175
Others -150
This is my settings... no prob at all.
Click to expand...
Click to collapse
Can you confirm your mV values? -175 sounds like a big saving. Surely your mV is not less than the minimum 770?
What kernel are you using?
do some proper tests to establish how much extra time you will get from a fully charged batt.
i would think its perhaps a tiny bit at most...
the screen would take a huge amount of the batt, the processor would use only a small percentage, so surely cutting a small fraction off a couple of steppings is fairly pointless?
baron von bubba said:
do some proper tests to establish how much extra time you will get from a fully charged batt.
i would think its perhaps a tiny bit at most...
the screen would take a huge amount of the batt, the processor would use only a small percentage, so surely cutting a small fraction off a couple of steppings is fairly pointless?
Click to expand...
Click to collapse
1. It depends what you're using the device for. Games, for example, can use a lot of CPU, so undervolting in this instance, will definitely use noticeably less battery.
2. If CPU voltage throughput didn't make any difference, we'd all just run our devices at 1700mhz all the time.
3. With undervolting, I can run my Xoom at the same voltage at 456mhz, as it run at 216mhz. This means I set my minimum frequency to 456 instead, and for the same minimum battery consumption, my device is noticeably smoother.
If you want to know how much extra time you will get from a fully charged battery, YOU do some tests.
lindsaytheflint said:
Can you confirm your mV values? -175 sounds like a big saving. Surely your mV is not less than the minimum 770?
What kernel are you using?
Click to expand...
Click to collapse
Yes i m sure. Has been using these settings till now.. no prob at all. Using tiamat stock gpu kernal with moray rom
i agree that during low intensity operation the power savings are probably nearly negligible, but during CPU-intense usage it could save a bit.
I myself am not willing to leave my Xoom on full bore for a series of tests lasting 7-10 hours each just to quantify how much power undervolting can save under super extraordinary circumstances.
But even if the energy savings is an arguable benefit, the reduction in CPU temperature is not. That alone makes this worth doing, IMO.
Agree.. after setting it my xoom now has lower temp when playing it
Hello, can someone please explain how my battery life improves when I set minimum cpu clock from 200 to 500?
I usually get 3 hours of screen time, with 500 as minimum I get nearly 4 hours. This difference is significant enough to make me wonder and ponder about how this happens.
It's counter logical, something with a higher minimum should drain faster.. right?
Does both cpu states are working at the same voltage? If yes (or the difference is very small) then the battery saving are from the increased execution speed .
In my own opinion, i dont think it affect much, while more than 70%+ battery drain by screen, unless u use cpu 100% all the time, otherwise i wouldnt too much concern abt that
Sent from my GT-N7000 using XDA Premium HD app
Chip efficiency changes with frequency. We tested this on my other phone (an Atrix- nice phone even now!)
Sometimes the CPU is just more power efficient doing tasks at higher frequencies. In a sense, the processor works faster, but for less time- so although it is running faster and requires more battery power, it completes the task much earlier and uses less power in total for that process.
My note, when running at 1.4ghz uses battery so much faster than at 1ghz, but the battery saving when dropping down from 1ghz is minimal, if existent at all.
Welcome to the not-always-intuitive world of modern CPU power usage.
The old mantra "higher frequencies use more power" becomes muddy in situations where the CPU can clock-gate parts of the chip when idle (cpuidle) and where the CPU voltage can change.
It was proven nearly a decade ago that if you don't change voltage at all with clock AND you have a good cpuidle implementation - it is actually best to always clock the CPU at maximum frequency. When voltage changes are in effect - it's harder to tell.
On most devices, the voltage for 500 and 200 are nearly identical. 500 does, I believe, have a somewhat higher bus frequency. So for a given workload, 500 MHz at, say, 20% load will use not much more power than 200 MHz at 50% load. In some cases, a device running at 500 MHz will finish a task more quickly and enter deep sleep faster.
Pretty much - 200 vs. 500 is really questionable in terms of which is best for power consumption. This is why I always set my screen-on minimum to 500.
Any frequency below 200 MHz is pointless as you can't undervolt those frequencies enough compared to 200 to make them have any benefit - in fact in many cases, adding a 100 MHz step is WORSE for battery.
Edit: One thing to note - In Gingerbread, the cpuidle driver was FAR less effective than it is in ICS. Only LPA and IDLE states were enabled by default, and the target residency for both was 40 ms.
In ICS, LPA, AFTR, and IDLE states are enabled and the target residency is 10ms. So it can hit deeper idle states far more often. For example, AFTR isn't as good as LPA - but it's better than dropping all the way to IDLE if you can't enter LPA. This is, in general, why the power consumption when wakelocked is much lower in ICS.
The bad news is that the suspend/resume cycle of the device is longer in ICS, AND cpuidle is totally blocked during suspend/resume - so the suspend/resume cycle eats even more juice than it did before, and it was historically one of the biggest users of power. Eventually I want to try and reduce this consumption.
Thanks for the good explanation mate, it has made things clear for me
Will be keeping my note on minimum of 500MHz aswell as it is a good improvement with no or next to no extra battery drain
Is it safe to change my CPU governor to "performance" to force max clock speed?
I don't want to overclock my Note 4, don't worry, not talking about that. But I am talking about MAX clocking it - forcing it to run at maximum rated speed. I've already tested out SetCPU and used it to change my governor to performance which forces the clock to max, and it nearly doubled my framerate in many games, especially the ones that struggled to play on this device like Xcom:EW.
But I quickly turned it off because I wasn't sure it was safe to do in the new era of smartphones, what with their DVFS and all. I'm worried that I'm going to overheat the CPU, and it's not going to be able to downclock because of temperature anymore. I'm only modifying the governor, but what if I actually used SetCPU to just change the CPU clock to max, without even touching the governor?
Can I hurt my phone by doing this? Can I safely start forcing my CPU to run faster while playing games, knowing that the only thing I risk is my battery draining faster, or am I actually risking damaging components by doing this?
Hello and thank you for using Q/A,
your CPU will not be damaged, but the battery life time will be shorted.
Regards
Trafalgar Square
RC
I personally have used Performance governor on Moto X 2013 for almost the whole 8 months I had it, 24x7 I mean. Never had a problem, yeah maybe battery life was little less than normal but I never did really care about it. Then I ran the same governor for a good period of time on my Note 3 too, same, no problem at all. Like you said, in games the frame rate difference is massive, but I don't play much games, I simply used that governor because it gets rid off all those micro lags and jitters which are Android's trademark, I simply can't them, with default Interactive the micro lags are very apparent.
However with Note 4 I am pretty happy with the BluActive governor, it makes most of the micro lags to go away, so sticking with it.
In any case unless you plan to use a mobile phone for maybe 5 years or so, I don't see any problem at all with it, other than a slightly increased heat, and maybe a little less battery backup, but you will find so many comments which might scare you, that chip burns off if you run it and all that, but those mainly are BS.