Min/Max frequencies of the CPU and you - Asus Eee Pad Transformer Prime

I remember there was this long debate about ASUS/NVIDIA and how they took away the 107MHz frequency and how it affected battery life..
For the record, on my CPU Spy I have it at 120 hours with 35% at 370MHz and 0% (56 minutes) at 102MHz with the rest in deep sleep and 405 and up to 1300MHz with great battery life.
In any case, there's a discussion in EVO 3D about CPU that might have some bearing on the frequencies and how it affects battery life and why sometimes the lowest one isn't the best for battery life.
Now, of course we know the variances between all the devices posted on here so while a lot of folks might have been fine, some might not, but that seems to be the case for the Prime. Hence we saw posts from folks saying they were fine with battery when it was at a min of 370MHz while some had worse.
Also, the Prime does use a different CPU than the EVO 3D so that could be taken into account as well
Anyways, good read for those interested
-----
From http://forum.xda-developers.com/showpost.php?p=23384703&postcount=2110
Thanks for the feedback. I do appreciate it, but by the looks of your post, you didn't see my detailed description of why the frequencies are set to what they are now. I was more interested in what people are actually experiencing as far as performance and battery in real world tests and conditions. From your post, the information that I believe is relevant is that you think your phone runs fine at 192Mhz. I'll accept that for what it is (a data point) but I already know from experience that you are in the minority here. As soon as I released v1.1 with the 192Mhz min frequency, I immediately started getting inundated with people complaining that battery life was much worse, and the phone lagged more on occasion. Then when I brought the frequency back up to 384Mhz, the vast majority reported "thank you, battery life is back to phenomenal and lag is gone". Well, that's what got me on my quest to actually find and measure the needed frequencies.
No, neither HTC nor Qualcomm set these devices up to work as well as they actually can. They simply do not have the resources and the time. These things are rushed to market and updates are no better: they are designed to "make the device work". That's about it! So when I actually started testing these things, I found that 192Mhz was far too slow to make this phone work without lag. 384 fixed the problem but when I looked into it further, 486 worked even better, and without extra battery drain. I didn't pull these numbers out of a hat nor did I increase them for bragging rights. They are measured values of what the phone actually needs in order to keep up! I spent many hours testing different states, what frequencies are needed when the CPU wakes up when the screen is off, etc. Simply put, 192 doesn't cut it (not even close) and 384 doesn't quite cut it either. When you crunch the numbers, you find that the phone actually needed 432Mhz while running one core with the screen off and 540Mhz while running dual core with the screen on. Lowering those numbers caused the CPU to jump relentlessly between the min/max numbers and when you look at the time and crunch the numbers, it was always shooting for those figures: 432 with screen off and 540 with screen on!
In other words, if you crank it down to even 384Mhz while the screen is on and IDLING (not even running any games or other apps: what you called "waiting for input"), it'll hop up to 1188 much more frequently and in fact, crunch the numbers for the amount of time it spent at 384 and 1188 and get an average and you'll find that on average, the CPU was using about 540Mhz of power with the screen on and about 432Mhz with the screen off. I will add a disclaimer here that yours may be slightly different (up or down one notch in the time table) from the 432-off/540-on numbers, but I did test a variety of configurations as I said in my description when I released 2.0 and 432/540 minimum frequencies were the good middle ground that worked well under all setups from clean install to heavily loaded down. Part of the need for higher minimum frequencies is because with the screen off, there's an initial "crunch" when the CPU is awakened and that often requires more CPU power than when a longer task is being performed. And with the screen on, it is always doing more than just waiting for input from you! There's a lot more going on in there than you think. Even bumping the min screen-on frequency from 384 to 486Mhz caused a dozen posts saying "Wow, lag is completely gone" and "apps seem to open before I even touch the screen". This is not placebo. This is noticeable and even measurable in benchmarks! No, the phone CANNOT and will not instantly crank up to 1188 Mhz from 192 (or 384). I've proven this many times. It doesn't work that way.
You have to remember that the decision to ramp up to 1188 is made at 192Mhz! It only measures CPU load 20 times per second. And it will never be able to ramp up to 1188 in 1/20 second! The reason is that by the time the service reports a high CPU load (high enough to trip the up-frequency), you've already experienced 1/20 second lag minimum. At that point, it takes at least one more cycle to actually increase CPU frequency at which point you've experienced at least 1/10 second of lag. That is almost always noticeable. To complicate matters, if you look at the code for the daemon, you'll notice that it is a "nice" process which means other high priority system processes can actually "steal" time from the daemon and that can actually greatly increase the amount of time it takes for the daemon to actually raise CPU frequency once it notices the phone is lagging. By that time, you've already noticed additional wait to open an app, a "hiccup" while scrolling, etc. The reality is, your phone can lag at 192Mhz (or 384) for several 1/20 second cycles before the CPU is actually ramped up to the full 1188 and THAT is what causes the lag.
So long story short (I know, too late now) I have to discount all your questioning about whether or not I got the numbers right because your assumptions about the numbers are quite frankly all dead wrong! Your scale of the numbers in your car analogy doesn't fit either. I actually do performance tuning on (among other setups) Hemis. The analogy is more like: set your idle to 192 RPM and see if you can keep it running. If it does, it'll be loping like hell and then when you hit the gas, what happens? It bogs. It's because the system wasn't ready for the load. Set it to 540RPM and see how much better it responds. That's a better analogy here.
So I'm really interested in actual results more than people pulling their own numbers out of a hat and saying "these make more sense to me". A lot of testing went into the CPU tweaks in this ROM and I'm aware of "theories" about how people think 192 might be better or 384 is better. Been there done that. That was the boardroom stage... kinda where HTC and Qualcomm left it. We're already out on the track racing and making adjustments.
Oh, and the frequencies are no more "locked" now than they've ever been. I intentionally set up the init.post_boot.sh so that they can easily be changed. So if you want to run yours at the laggier, less efficient 192Mhz, the choice is yours. Just follow Lrod's instructions above. I was going to post those but he did a fine job.
Edit: I also notice you said at one point "So I don't understand why the decision was made in v2.0 to raise the minimum frequencies to 432mhz for core0 and 540mhz for core1.". CPU0 is never run at a different minimum frequency than CPU1. The numbers for min/max are:
- Screen off: CPU0 = 432/648, CPU1 = offline
- Screen on: CPU0 = 540/1188, CPU1 = 540/1188
And again, these numbers came from actual measurements and number crunching. Didn't matter what you used for minimum frequency: you could set it to 192 and run the phone for a day, and then set it to 384 and run the phone for a day. What you'd find is that regardless of what you picked, the CPU was always "hunting" for about 432Mhz with the screen off and about 540Mhz with the screen on. And with screen on, I mean the screen forced on but the phone doing nothing but idling on the home screen. The CPU was doing nothing but typical background tasks with an occasional email or SMS message coming in and maybe a stray screen scrolling thrown in infrequently.
Mike

Related

Overclocked-UV-Kernel-Battery Life Without Set-CPU

If you are using one of the Over-Clocked Undervolted Kernels please uninstall set-cpu and observe your battery life for 3 days and compare it to what you got when you used set-cpu. Then report as to if it is better, worse, or the same.
Just compare to what how long your battery lasts with your normal usage. Please do not give replies like "I only used 30% in two days with normal use."
Just reply with either better, worse, or same. Because usage is relative and that is not the purpose of this.
I think that set-cpu is interfering with the built in govenor and its ability to scale the freq of the phone. I think that it is staying on what-ever freq you set in set-cpu and scaling properly and thus reducing the battery life, and making the undervolting useless.
IF YOU BELIEVE YOU HAVE BETTER BATTERY LIFE WITHOUT SETCPU, THEN GET LOGS WHILE IT IS RUNNING AND SEND THEM TO THE DEV.
I have also noticed lag on the home screen with setcpu, I started using Overclock Widget to detect the values and to diff freq screen off 245-576 and put the phone on sleep while charging so will stay cool. Battery life has been great so far! I'm using 2.6.33.4 [email protected] #1 about to upgrade to his newest 2.6.34...I think SetCpu has flaws!
Will let you know my results.
this thread may be of some help. im currently trying pershoots 5.12vfp release without setcpu at all.
i do, however, remember getting 37 hours with moderate use with setcpu and profiles set, but i cant remember which kernal it was exactly. i think it may have been IRs 4.29 release..
Just uninstalled SetCPU and I'm running Pershoot's newest 2.6.33.4 925 Kernel. I will report back my findings in a couple of days...
Been curious about this for a while, but does the Nexus automatically throttle CPU speed by itself when SetCPU is not installed?
paulk_ said:
Been curious about this for a while, but does the Nexus automatically throttle CPU speed by itself when SetCPU is not installed?
Click to expand...
Click to collapse
Nope, incredible and onwards only.
Did this Quite a bit ago... ran with and without for over a week and i have better battery life without setcpu
When you don't have setcpu, you're not running at 1113ghz..
persiansown said:
When you don't have setcpu, you're not running at 1113ghz..
Click to expand...
Click to collapse
Perhaps...However, Linpack is proportional (I think) to the device's performance. My little experiment was testing different frequency kernels and measuring that against Linpacl
998: 7.4
1.13: 8.2
1.19: 8.9
So it would appear that performance increases with each kernel which wouldn't be the case if SetCPU was required.
I have some reasons to believe that SetCPU would interfere with the actual design of the Nexus One. I mean after all, i'm sure it was programmed to manage itself. So why have another app that does the same thing, twice? Just a thought, but for one thing, my phone is definitely cooler when charging compared to having SetCPU with profiles.
dogiedogie said:
Nope, incredible and onwards only.
Click to expand...
Click to collapse
You mean that the Incredible features CPU throttling?
jlevy73 said:
Perhaps...However, Linpack is proportional (I think) to the device's performance. My little experiment was testing different frequency kernels and measuring that against Linpacl
998: 7.4
1.13: 8.2
1.19: 8.9
So it would appear that performance increases with each kernel which wouldn't be the case if SetCPU was required.
Click to expand...
Click to collapse
There are dozens of potential optimizations that can be done to improve performance without touching the cpu speed. Different kernels, especially if they're from different people, will have different flags set in the build and so will perform differently even at the same clock speed.
Casao said:
There are dozens of potential optimizations that can be done to improve performance without touching the cpu speed. Different kernels, especially if they're from different people, will have different flags set in the build and so will perform differently even at the same clock speed.
Click to expand...
Click to collapse
I completely agree however all the kernels I use are from the same person and the optimizations at the different clocks speeds are identical. Therefore the spread in my linpack scores indicate that setcpu is not required. At least, that's my theory
this and other threads have made me question why we need setcpu anyways. I have it running and its great but can't we just integrate what setcpu is doing from the get go instead of having an external app running a separate process?'seems a little inefficient to me. The reason I say this is that I noticed most people are using the same settings for set cpu.
anyways, I dunno how relevant all this is since froyo's just around the corner and that may alleviate some problems but bring more problems
Yeah, start bashing my app, knowing I was the one who came up with the ideas behind the 1113MHz/uv hack in the first place (in fact, I came up with the 21MB hack as well, so prominently displayed in the OP's kernel thread title). Thanks, nexus one community.
I can explain that setcpu does not run any code in the background if your profiles are disabled, I can explain how cpufreq works, I can explain what lengths I went to to optimize the profiles, and I can explain that the profiles are very passive (except sometimes on the Droid, but there's an option for tweaking that) but I probably won't bother. Grab 1.5.3a and use it, or don't use it. I don't care either way.
I think that set-cpu is interfering with the built in govenor and its ability to scale the freq of the phone. I think that it is staying on what-ever freq you set in set-cpu and scaling properly and thus reducing the battery life, and making the undervolting useless.
Click to expand...
Click to collapse
You obviously do not know how cpufreq works. Setcpu does not touch the values after it sets a profile. Profiles actually run code only when it receives broadcast intents. It sets the max and min bounds and the governor if necessary within a fraction of a second. The service is completely idle otherwise. It can't "interfere with the built in governor." Okay, then. What is your big theory? What exactly is setcpu doing wrong?
SetCPU is advantageous because it allows you to tweak speeds on the fly and based on certain conditions. You can have solely kernel based overclocking and undervolting, sure, and that is perfectly fine. SetCPU is a convenient tool for controlling that without having to compile and flash a new kernel. If you do not like profiles, do not use them. They were only introduced in 1.3.0 But don't uninstall SetCPU because it does nothing with profiles disabled.
dogiedogie said:
Nope, incredible and onwards only.
Click to expand...
Click to collapse
HTC implements a rather awkward driver in nearly all of their Sense UI devices (and I think the Magic 32A) that throttles based on certain conditions. I am not entirely sure how it works, as I have not looked into the specifics, but it seems to max out the CPU under some conditions.
chowlala said:
I have some reasons to believe that SetCPU would interfere with the actual design of the Nexus One. I mean after all, i'm sure it was programmed to manage itself. So why have another app that does the same thing, twice? Just a thought, but for one thing, my phone is definitely cooler when charging compared to having SetCPU with profiles.
Click to expand...
Click to collapse
I am 100% sure this is placebo effect. Setcpu can't make your phone run hotter just because it's there. If you had a charging profile set for 1113/1113, sure, but that is not setcpu itself. Linux does not control the CPU scaling any further than what ondemand does - there is nothing preventing the CPU from going up to your max during sleep (or rather, when the screen is off), for example, or when your battery is low.
Oh, and using the active widget is a bad idea if you care about battery life. I tried to optimize it as much as possible, but realize that it's updating a lot more things than other apps are (the frequency, the bounds, and two temperature readings) at a relatively fast interval. The home screen does pause a bit while it is updating. That is a fact of life. Longer intervals are essentially useless because the update interval for cpufreq itself is on the order of thousands of microseconds. The current appwidget refreshes if the screen is on, regardless of whether it's visible or not (there is currently no way to tell if it is visible). A live wallpaper would be a much better idea than a constantly updating appwidget, and I'll look into that.
Let me explain this bit better. Cpufreq will scale your CPU between the max and min values automatically. Once the CPU load hits the "up threshold," it takes your CPU frequency from the min to the max, then gradually eases it down. SetCPU lets you easily change the max and min values on the fly. If you want, it can also prevent the system from scaling the CPU up that high during times you don't want it to (with profiles, of course). It does not and cannot interfere with the actual governor.
Well there you have it, straight from the source
TL;DR - setCPU doesn't run code in background unless you use profiles, it doesn't make your phone hotter unless you use a 1113/1113 profile, & if you value battery life don't use setCPU Active widget.
SetCPU
coolbho3000 said:
...
Click to expand...
Click to collapse
Props dude. Keep up the good work.
To be honest I'm a user, donator and supporter of SetCPU. I've never had cause to complain.
Not bashing your app dude, in fact I have the paid version. I am only wondering why people are noticing better battery life without it than with it. Want to see if it really is setcpu or something else. To do that something has to be isolated.
And I believe that if the freq are set in the kernel then the phone will scale up an down on its own.
coolbho3000 said:
Yeah, start bashing my app, knowing I was the one who came up with the ideas behind the 1113MHz/uv hack in the first place (in fact, I came up with the 21MB hack as well, so prominently displayed in the OP's kernel thread title). Thanks, nexus one community.
I can explain that setcpu does not run any code in the background if your profiles are disabled, I can explain how cpufreq works, I can explain what lengths I went to to optimize the profiles, and I can explain that the profiles are very passive (except sometimes on the Droid, but there's an option for tweaking that) but I probably won't bother. Grab 1.5.3a and use it, or don't use it. I don't care either way.
You obviously do not know how cpufreq works. Setcpu does not touch the values after it sets a profile. Profiles actually run code only when it receives broadcast intents. It sets the max and min bounds and the governor if necessary within a fraction of a second. The service is completely idle otherwise. It can't "interfere with the built in governor." Okay, then. What is your big theory? What exactly is setcpu doing wrong?
SetCPU is advantageous because it allows you to tweak speeds on the fly and based on certain conditions. You can have solely kernel based overclocking and undervolting, sure, and that is perfectly fine. SetCPU is a convenient tool for controlling that without having to compile and flash a new kernel. If you do not like profiles, do not use them. They were only introduced in 1.3.0 But don't uninstall SetCPU because it does nothing with profiles disabled.
HTC implements a rather awkward driver in nearly all of their Sense UI devices (and I think the Magic 32A) that throttles based on certain conditions. I am not entirely sure how it works, as I have not looked into the specifics, but it seems to max out the CPU under some conditions.
I am 100% sure this is placebo effect. Setcpu can't make your phone run hotter just because it's there. If you had a charging profile set for 1113/1113, sure, but that is not setcpu itself. Linux does not control the CPU scaling any further than what ondemand does - there is nothing preventing the CPU from going up to your max during sleep (or rather, when the screen is off), for example, or when your battery is low.
Oh, and using the active widget is a bad idea if you care about battery life. I tried to optimize it as much as possible, but realize that it's updating a lot more things than other apps are (the frequency, the bounds, and two temperature readings) at a relatively fast interval. The home screen does pause a bit while it is updating. That is a fact of life. Longer intervals are essentially useless because the update interval for cpufreq itself is on the order of thousands of microseconds. The current appwidget refreshes if the screen is on, regardless of whether it's visible or not (there is currently no way to tell if it is visible). A live wallpaper would be a much better idea than a constantly updating appwidget, and I'll look into that.
Let me explain this bit better. Cpufreq will scale your CPU between the max and min values automatically. Once the CPU load hits the "up threshold," it takes your CPU frequency from the min to the max, then gradually eases it down. SetCPU lets you easily change the max and min values on the fly. If you want, it can also prevent the system from scaling the CPU up that high during times you don't want it to (with profiles, of course). It does not and cannot interfere with the actual governor.
Click to expand...
Click to collapse
I too am a fan of setcpu, and over the last week I did get curious due to this this thread. I found my battery ran down quite significantly faster without setcpu, maybe because I didn't have my sleep profile of lowest freq min/max, or my battery profile of max 756, or my low battery profiles scaling down my cpu max. Either way, stop bashing the app, it's awesome, and if you had concerns, take them to the dev rather than start a witch hunt in the forums trying to make a posse.
People that report better battery, may not have had setcpu set up correctly in the first place. A friend of mine at work installed it, ran for a day and uninstalled it, citing it didn't do anything and infact drained his battery. He had the widget running, and had upped the minimum cpu freq to 500 and something, max to the 1.13ghx. He didn't run profiles. But as such, he wasn't letting his phone scale down to the lowest freq when it wanted to, and had the widget drain. I got him to set t up as I have mine, and he was blown away with the change.
"My car wont go over 20km/h"
"Are you putting your foot on the accelerator?"
"Whats an accelerator?"
Things have to be used correctly to get the best out of them, and unless someone saying it's far worse than without actually comes in and puts up their values they have it set to, we have no idea why they are having the fault. My experience (I have worked tech call centres for years) is that 99/100 issues people experience are due to not using things as they are set out to be, or just have no idea how to do what they are trying to do. My work mates thing was that he thought all apps would go faster if he increased the minimum freq, so therefore use less battery because the processes are completed faster. In a way it's logical, but the result is that even when nothings running the cpu wont fall below that value, so the battery drained much faster than he expected.

CPU Overclocking while screen off

Is there a negative effect of setting the clock speed lower while screen off? Aside from running really labor intensive tasks?
It just seems like a great way to save battery to me. Right?
The only negative is getting the phone to wake up fast enough when you get an inbound call.
The CFS kernel (which is widely used now) seems to be less able to come out of a deep sleep rapidly than the older "zanfur" OC kernel did.
IIRC, on the older "zanfur" OC kernel, you could set the minimum scaling frequency to 19 Mhz - but with with the CFS kernel, you may need to use a minimum value of 122 Mhz or 245 Mhz.
Set the max scaling speed to 480 or 528 when sleeping. (The max frequency is only rarely used when the phone is sleeping - but you want the phone to pop out of it's low speed state quickly when you power up the screen, or experience an inbound call).
Thanks, Yeah I usually set the max to 480 while sleeping and 480 as min while awake. Battery seems good there.
Originally I was using SetCPU but I have switched to CPUBoost. Most all the kernels in the past few roms I have used are made by conap and he is also the creator of CPUBoost, so I figured they would integrate really well.
Also if I enter anything above the 800 range the phone will have random reboots throughout a few different roms I've tried.
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Pokelover980 said:
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Click to expand...
Click to collapse
Thanks for the info, I didn't know that. I will assume that's more or less accurate unless Conap or bftb0 chime in.
Pokelover980 said:
As a note, if I remember correctly, if you have a kernel/ROM that supports the smartass governor, you should be able to use it and not need to have a profile set to underclock while the screen is off, or really need to underclock at all, as I believe it determines for you how much CPU is needed and sets the clock speed accordingly, simply abiding by your max and min speeds you set. Since less CPU is needed when the screen is off, it will automatically adjust accordingly. However, this is just something I've read around the forums, so don't take my word for it
Click to expand...
Click to collapse
roirraW "edor" ehT said:
Thanks for the info, I didn't know that. I will assume that's more or less accurate unless Conap or bftb0 chime in.
Click to expand...
Click to collapse
Well, I suppose it could be said that the whole point of any rate governor is to reduce overall power consumption without markedly affecting the user's perception of "responsiveness" or "speed" - however they go about defining those metrics.
OTOH, because there are - what - five different scaling governors available, it is apparent that people have found their own reasons to create new scaling governors; presumably that arose from a dissatisfaction with the behavior of the available scaling governor - or, that different users have differing application workloads, and so they prefer one governor over another.
As Pokelover980 suggests, you could just hand a given rate governor a fixed set of limits (min/max), and be done with it.** For folks that have the time and desire to experiment, I would suggest that: pick a governor and a min/max clock rate and run that way for 2-3 days - no profiles at all. Then pick a different governor with the same min/max clock rate and run that way for another 2-3 days, and see how it goes - maybe not in battery life, because that's hard to measure in a repeatable way, but at least to see if any problems occur coming out of sleep.
Is the "smartass" governor better than all the rest of them? I don't really know. I used it for a little while, but found something I didn't like about it. (But don't take that as conclusive about anything; I doubt that I was doing disciplined testing when that happened). I tend to use either "interactive" or "ondemand", and don't have a strong preference for one over the other.
There probably is some value in keeping things simple. I think that I mentioned before that at one point (back when the CFS kernels were still in a state of flux) I was convinced that using setCPU was exacerbating problems with lock-ups I observed (once every couple of days). Again, though - that was really only my suspicion; I can't really prove it.
bftb0
** I suppose that folks that insist on extreme levels of overclocking ought to use either an overtemp profile or some other means to monitor temperature so that they don't cook their phone.
I Installed SetCPU on the wifes Eris. The smartass governor on CM7 will max out the cpu (to your preset max) if needed. I dont think the smartest thing to do is max out the cpu at 15% batt life. I have 5 different profiles set. One for screen off, charging, < 50%, < 30%, <10%. I use interactive governor vs smartass. Her phone is pretty responsive and I dont hear about issues with it not waking up. Battery life has also increased quite a bit.

[Q] Underclocking

I'm currently debating buying WidgetLocker, but I'm a bit skeptical since I'm not sure how bad it will lag with my current sleep profile. Can any WidgetLocker users possibly shed some light if they think it will lag on my phone? I'll put my profiles below.
Code:
Temp > 38.6C, Priority: 100, 480 max 160 min, ondemand
Charging/Full, Priority: 75, 710 max 245 min, ondemand
Battery < 25%, Priority: 50 ,480 max 245 min, ondemand
Screen Off, Priority: 25, 245 max 160 min, ondemand
If my sleep profile would make it lag, would bumping it up to 245 max 245 min help any?
Profile recommendations are welcome as well if theres anything that could be done to improve performance without sapping an excessive amount of battery. I have noticed my phone lags waking up sometimes and occasionally just when it's being used.
I would put your sleep profile at either the 2nd or 3rd highest priority - either right after the overtemp profile, or after the "on charger/full" profile.
my profiles usually look something like this (ordered from highest to lowest priority) :
- temperature (can have more than one; highest (over-)temp has highest priority)
- charging/full
- screen off
- battery (can have more than one; lowest battery % has highest priority)
- battery < 101% (this is the sort of like the "off charger, not overtemp, screen on state)
If the "screen off" profile has a higher priority than all the battery conditions, then all the "battery" conditions certainly can only be effective when the screen is on. (Note that the way you have it now, your < 25% battery condition always "wins" over the screen-off profile)
Also, note that your profiles don't contain anything matching the "off charger, 25% < battery < 101%" condition as they stand - what is controlling that, the default profile?
I'm not sure that there are big gains to be had by ratcheting down the min/max cpu frequency for low battery conditions: when you have the display on, it could well be drawing more power than the CPU - so, if your goal is to save battery, it would make sense to have whatever it is you want "computed" to show up on the screen as quickly as possible - so that you can shut the screen off that much quicker.
For the same reason, if most of the time the phone is on you are just "staring at the screen", and nothing is going on in the background, allowing the rate governor to drop to a low frequency saves you only a little bit (if the screen is really the dominant juice-user in that scenario.)
My GSB v1.6 Eris reports using only 2-3 % overnight - it's screen off profile is set to 160/245 - and I seem to be using the "interactive" governor on all profiles ... but I also use Toggle2G with a 10-minute sleep onset delay.
( Probably that means that I don't get email notifications as soon as I could, but that doesn't bother me much - I get them as soon as I unsleep the phone. If you are the type of person that needs to look at their phone every time your facebook updates, then Toggle2G perhaps isn't for you.)
I can't prove it, but so long as you don't peg your CPU minimum frequency too high, and rely on the rate governor to do it's job, most power savings are likely to come from managing the radio state and the screen brightness.
bftb0
What percentages do u recommend bftb0
Sent from my Ginger Tazz using Tapatalk
bftb0 said:
I would put your sleep profile at either the 2nd or 3rd highest priority - either right after the overtemp profile, or after the "on charger/full" profile.
my profiles usually look something like this (ordered from highest to lowest priority) :
- temperature (can have more than one; highest (over-)temp has highest priority)
- charging/full
- screen off
- battery (can have more than one; lowest battery % has highest priority)
- battery < 101% (this is the sort of like the "off charger, not overtemp, screen on state)
If the "screen off" profile has a higher priority than all the battery conditions, then all the "battery" conditions certainly can only be effective when the screen is on. (Note that the way you have it now, your < 25% battery condition always "wins" over the screen-off profile)
Also, note that your profiles don't contain anything matching the "off charger, 25% < battery < 101%" condition as they stand - what is controlling that, the default profile?
I'm not sure that there are big gains to be had by ratcheting down the min/max cpu frequency for low battery conditions: when you have the display on, it could well be drawing more power than the CPU - so, if your goal is to save battery, it would make sense to have whatever it is you want "computed" to show up on the screen as quickly as possible - so that you can shut the screen off that much quicker.
For the same reason, if most of the time the phone is on you are just "staring at the screen", and nothing is going on in the background, allowing the rate governor to drop to a low frequency saves you only a little bit (if the screen is really the dominant juice-user in that scenario.)
My GSB v1.6 Eris reports using only 2-3 % overnight - it's screen off profile is set to 160/245 - and I seem to be using the "interactive" governor on all profiles ... but I also use Toggle2G with a 10-minute sleep onset delay.
( Probably that means that I don't get email notifications as soon as I could, but that doesn't bother me much - I get them as soon as I unsleep the phone. If you are the type of person that needs to look at their phone every time your facebook updates, then Toggle2G perhaps isn't for you.)
I can't prove it, but so long as you don't peg your CPU minimum frequency too high, and rely on the rate governor to do it's job, most power savings are likely to come from managing the radio state and the screen brightness.
bftb0
Click to expand...
Click to collapse
Never a post that isn't enlightening from you.
Yes my default clock profile (710 max 160 min, might bump it up to 245 min) is the one managing the clock rate when the phone is off the charger. As for Toggle2G that might not be a bad idea, I keep my phone on Airplane Mode most of the time I'm at school (horrible signal = battery draining out the wazoo) but it might not be a bad idea to have for when I'm not at school. Of course I'm not sure I would need it though since I have an extended battery, maybe something to experiment with.
As for profiles, something like this?
Code:
Temp > 38.6C, Priority: 100, 480 max 160 min, ondemand
Screen Off, Priority: 75, 245 max 160 min, ondemand
Charging/Full, Priority: 50 ,710 max 245 min, ondemand
Battery < 25%, Priority: 25, 480 max 245 min, ondemand
If you are already using Airplane Mode because of poor signal conditions, Toggle2G won't help much - the battery will drain just looking for voice/1xRTT service (not to mention 3G). I have a pretty good signal where my phone spends most of it's time, including overnight ( -70 dBm to -80 dBm )
ToastPwnz said:
As for profiles, something like this?
Code:
Temp > 38.6C, Priority: 100, 480 max 160 min, ondemand
Screen Off, Priority: 75, 245 max 160 min, ondemand
Charging/Full, Priority: 50 ,710 max 245 min, ondemand
Battery < 25%, Priority: 25, 480 max 245 min, ondemand
Click to expand...
Click to collapse
Seems OK. I have a couple of battery profiles where I slowly drop the max frequency, and make the default condition explicit by using a "battery < 101%" profile, as in:
Pr Min/Max Governor Condition
90 245/480 interactive Temp > 50.0 C *audible alarm
80 245/604 interactive Temp > 45.2 C
70 528/710 interactive Charging
60 160/245 interactive Screen Off
50 160/480 interactive Battery < 15%
40 160/528 interactive Battery < 25%
30 245/604 interactive Battery < 40%
20 480/710 interactive Battery < 67%
10 480/729 interactive Battery < 101%
I'm not sure this really produces much effect in terms of battery savings, though - for instance, it runs counter to my suggestion (above) that it might actually hurt to slow things down with reduced battery reserve because you just end up with the screen on longer.
I'll also mention that for a period of time I was actually convinced that using setCPU was causing random freeze-ups when used with certain combinations of the CFS kernel, governor choice, and min frequency - and so I didn't even have it installed on my phone. I only recently put setCPU back on my phone because I was noticing that CPUboost settings did not seem to be sticking even within the same session (perhaps I was misinterpreting something, I'm not sure). No random freeze-ups lately.
Because some of the things which actually drain the battery - cell radio, screen time on & brightness, 3G activity level, etc., are so highly variable, I'm not sure that any of the reports on this forum (including mine) can be regarded as particularly meaningful. It takes real dedication to the task (creating reproducible signal conditions and compute/activity workloads) to be able to produce quality data about battery usage. Most folks need to use their phones throughout the day (moving continuously from place to place with widely varying signal levels), so they can't set their phones aside to do such things; their usage is not repeatable, so it is hard to believe them, whether they are saying "great battery life", or "battery life sucks!".
Heck, even at night, when my phone isn't "doing anything", (which you would think would be sort of "reproducible") if I move it 8 inches one way or another on the nightstand, my signal level can change by 10 dBm. That means that if I don't use Airplane Mode overnight, it is really not too meaningful to compare "configuration X" to "configuration Y" on successive nights - because the battery usage by the radio is not reproducible.
I guess the bottom line is - if you can get a full day out of the phone, be happy with that; it's just about what the phone was designed to do.
bftb0
bftb0 said:
If you are already using Airplane Mode because of poor signal conditions, Toggle2G won't help much - the battery will drain just looking for voice/1xRTT service (not to mention 3G). I have a pretty good signal where my phone spends most of it's time, including overnight ( -70 dBm to -80 dBm )
Seems OK. I have a couple of battery profiles where I slowly drop the max frequency, and make the default condition explicit by using a "battery < 101%" profile, as in:
Pr Min/Max Governor Condition
90 245/480 interactive Temp > 50.0 C *audible alarm
80 245/604 interactive Temp > 45.2 C
70 528/710 interactive Charging
60 160/245 interactive Screen Off
50 160/480 interactive Battery < 15%
40 160/528 interactive Battery < 25%
30 245/604 interactive Battery < 40%
20 480/710 interactive Battery < 67%
10 480/729 interactive Battery < 101%
I'm not sure this really produces much effect in terms of battery savings, though - for instance, it runs counter to my suggestion (above) that it might actually hurt to slow things down with reduced battery reserve because you just end up with the screen on longer.
I'll also mention that for a period of time I was actually convinced that using setCPU was causing random freeze-ups when used with certain combinations of the CFS kernel, governor choice, and min frequency - and so I didn't even have it installed on my phone. I only recently put setCPU back on my phone because I was noticing that CPUboost settings did not seem to be sticking even within the same session (perhaps I was misinterpreting something, I'm not sure). No random freeze-ups lately.
Because some of the things which actually drain the battery - cell radio, screen time on & brightness, 3G activity level, etc., are so highly variable, I'm not sure that any of the reports on this forum (including mine) can be regarded as particularly meaningful. It takes real dedication to the task (creating reproducible signal conditions and compute/activity workloads) to be able to produce quality data about battery usage. Most folks need to use their phones throughout the day (moving continuously from place to place with widely varying signal levels), so they can't set their phones aside to do such things; their usage is not repeatable, so it is hard to believe them, whether they are saying "great battery life", or "battery life sucks!".
Heck, even at night, when my phone isn't "doing anything", (which you would think would be sort of "reproducible") if I move it 8 inches one way or another on the nightstand, my signal level can change by 10 dBm. That means that if I don't use Airplane Mode overnight, it is really not too meaningful to compare "configuration X" to "configuration Y" on successive nights - because the battery usage by the radio is not reproducible.
I guess the bottom line is - if you can get a full day out of the phone, be happy with that; it's just about what the phone was designed to do.
bftb0
Click to expand...
Click to collapse
Hm, I might try those profiles with a few tweaks, or I might just end up bumping up my screen off profile in terms of priority, not sure yet.
Another question, what do you suggest as far as governors go? I seem to have the most success with ondemand, but I've never tried interactive. I learned the hard way that smartass lags my phone horribly, not sure why.
With my extended battery, I've gone roughly 65 hours total uptime with about 45% battery left with moderate use. I guess I should be proud of that.
ToastPwnz said:
I'm currently debating buying WidgetLocker, but I'm a bit skeptical since I'm not sure how bad it will lag with my current sleep profile. Can any WidgetLocker users possibly shed some light if they think it will lag on my phone? I'll put my profiles below.
Code:
Temp > 38.6C, Priority: 100, 480 max 160 min, ondemand
Charging/Full, Priority: 75, 710 max 245 min, ondemand
Battery < 25%, Priority: 50 ,480 max 245 min, ondemand
Screen Off, Priority: 25, 245 max 160 min, ondemand
If my sleep profile would make it lag, would bumping it up to 245 max 245 min help any?
Profile recommendations are welcome as well if theres anything that could be done to improve performance without sapping an excessive amount of battery. I have noticed my phone lags waking up sometimes and occasionally just when it's being used.
Click to expand...
Click to collapse
Wow you actually set a max of 480 for merely being over 38.6C??? I think that's a bit extreme. Other than that your profiles aren't that different than what I use (using Conap's CPUBoost tool, what are you using?).
I love WidgetLocker, and yes it's one of the only two apps I've actually purchased. Lag or not I wouldn't trade it.
The only "issue" (not necessarily WL's fault) is that using the Theme Chooser under GB ROMs, at least with the Speedometer Battery theme, definitely causes WL to lose what widgets are on it between reboots, although not always every reboot, but most of them.
It's confirmed that the solution is to not use Theme Chooser, at least with the Speedometer Battery theme. I don't know for sure if other themes cause it as well, but it's easily reversed (go back to the stock theme) if it does.
roirraW "edor" ehT said:
Wow you actually set a max of 480 for merely being over 38.6C??? I think that's a bit extreme. Other than that your profiles aren't that different than what I use (using Conap's CPUBoost tool, what are you using?).
I love WidgetLocker, and yes it's one of the only two apps I've actually purchased. Lag or not I wouldn't trade it.
The only "issue" (not necessarily WL's fault) is that using the Theme Chooser under GB ROMs, at least with the Speedometer Battery theme, definitely causes WL to lose what widgets are on it between reboots, although not always every reboot, but most of them.
It's confirmed that the solution is to not use Theme Chooser, at least with the Speedometer Battery theme. I don't know for sure if other themes cause it as well, but it's easily reversed (go back to the stock theme) if it does.
Click to expand...
Click to collapse
I'm still using SetCPU.
Yes I do knock it down that far, my phone heats up like crazy while I'm at school (terrible signal) and once it reaches 100F I could use the phone as a hand warmer and if I take off the back I can smell burning plastic. Maybe thats normal for the Eris, but I use it just as a precautionary measure.
ToastPwnz said:
Another question, what do you suggest as far as governors go? I seem to have the most success with ondemand, but I've never tried interactive. I learned the hard way that smartass lags my phone horribly, not sure why.
Click to expand...
Click to collapse
I haven't spent much time trying to figure out the "best" governor - I tend to use either "ondemand" or "interactive" without giving it too much thought. I tried smartass for a while, and remember being not happy with it for some reason or another; but I don't remember what those reasons were. ( It might have been nothing more than "choppiness" of scrolling behaviors. )
bftb0 said:
I haven't spent much time trying to figure out the "best" governor - I tend to use either "ondemand" or "interactive" without giving it too much thought. I tried smartass for a while, and remember being not happy with it for some reason or another; but I don't remember what those reasons were. ( It might have been nothing more than "choppiness" of scrolling behaviors. )
Click to expand...
Click to collapse
Now my curiosity is getting the best of me. Whats the difference between ondemand and interactive? (Sorry for all my questions <.<)
ToastPwnz said:
Now my curiosity is getting the best of me. Whats the difference between ondemand and interactive? (Sorry for all my questions <.<)
Click to expand...
Click to collapse
I don't know for sure...
... but I can tell you that the exact answer to your question is right here.
bftb0 said:
I don't know for sure...
... but I can tell you that the exact answer to your question is right here.
Click to expand...
Click to collapse
Hidden within that garbled mess.
I kid, I think I found the explanation you had in mind, and from what I can find the only major difference is that interactive is more aggressive then ondemand. I'm not sure if I should take that governor for a test run or not, I do notice that my phone lags when waking up occasionally. It kind of sounds like switching to interactive might help that.
ToastPwnz said:
I'm still using SetCPU.
Yes I do knock it down that far, my phone heats up like crazy while I'm at school (terrible signal) and once it reaches 100F I could use the phone as a hand warmer and if I take off the back I can smell burning plastic. Maybe thats normal for the Eris, but I use it just as a precautionary measure.
Click to expand...
Click to collapse
You probably have your reasons, but when you're at school, why don't you put it in Airplane mode and just take it off it between classes to check emails and such? Save your battery and the heat of your Eris a bunch.
Or do you and you just use the temperature profile as a fallback in case you forget to put it back in Airplane mode?
roirraW "edor" ehT said:
You probably have your reasons, but when you're at school, why don't you put it in Airplane mode and just take it off it between classes to check emails and such? Save your battery and the heat of your Eris a bunch.
Or do you and you just use the temperature profile as a fallback in case you forget to put it back in Airplane mode?
Click to expand...
Click to collapse
You are quite correct sir. That and my I bump my phone occasionally, and I think two days ago it turned on and I didn't notice, and when I checked it I noticed over the course of about 2-3 hours it lost 14% and was at around 95ish F.
I do keep it in Airplane Mode when I'm not using it (and it's off as well), but the profile is pretty much just a precautionary measure.

same voltage = same energy consumption??

As far as I've seen, Everybody in this forum says that clocks 480 or below have the same voltage, so setting min clock as 480 is enough and no difference in terms of battery consuming even if you set it to 245.
I know it is right about voltage(I searched about that myself), but does same voltage means same energy consumption?
you guys must already know that higher clock makes more heat, so where does the heat come from? it's from your battery!
(from what I learned from school E=V^2*t/R where E is energy, V is voltage, t is time and R is resistance so there's another fact for electric energy other than voltage and time)
So I think you should set the min freq to 245 unless you feel uncomfortable for its low responsiveness.
is there anything wrong in my theory?
For this you can't depend on equations etc, it has to be tested each by everyone of us to feel which one is better for us and which is more battery saving. Personally I felt 245mhz drains a bit less than 480mhz however it is less responsive. I remember i saw in forums about this(althought another device) and it was one heck of a debate, but the conclusion was each and every person has to test for themselves.
And the wakes ofcourse, the amount the kernel wakes per second.
Deep sleep **** counts also...
If you have wakelocks, set as low as you can, if you don't, use 480
Sent from my LG-P500
You're right about energy consumption,i've been with extreme-cpu overclocking(on pc) for quite some time and a higher clock on same voltage will indeed consume more+more heat. But here like you've seen ^ it's related to wakelocks and if there are any apps running, if deep sleep is ok and stuff so there are many factors.
Best is to try and see wich fits you best regarding performance/battery/stability also it depends on the guvernor if you have a snappy one it will push your cpu to max even if you surf between screens
This is one of the biggest "not solved point" about O.1 configuration....
To adress this and other "open point" i developed an app for logging resources consumption
more info here:http://forum.xda-developers.com/showthread.php?t=1505950
Did a test with a cpu benchmark (simple thing to test how fast it does some things)
Did those in powersave governor:
122MHz
>10000ms (took a minute to do the test)
480MHz
~1900ms
Also did in 245, and I got 4392ms, and this is very good
Sent from my LG-P500

[Q] Overclocking Concept

Hi Guys,
I am a noob here. I have never used a android phone before, not even a iPhone - so basically no smart phones.My first smart/android phone would be Nexus 4 which would be coming tomorrow.
I have been reading threads to understand andriod architecture and believe have understood to certain extent.
I have a question in clocking the CPUs and Voting.
As I understand, we have 3 states -Max, Min and Sleep for a single CPU core
Max - The frequency (clock speed) which CPU executes or maximum speed which CPU sends signals to its components and get the response back. This would be used when the system is on - which means when user is doing some process.. like texting, video chat, gaming (this case GPU is also involved) etc.
Min - This would be for background process when the user/phone is idle - that when screen is off (eq - gmail sync, facebook sync etc..)
Sleep - Screen off and no background process , the core will be in sleep.
And the battery level will be directly propotional to speed of CPU with respect to the volting.
Now lets say there is a single core processor in a phone which can clock upto 1.5GZ. and the stock kernel comes up with Max - 1.3GZ and MIN -0.5 GHZ.
Question is abt overclocking minimum frequency
1. why not overclock the Mn frequency to 1.3Ghz? because the backgroundprocess would be fast and phone/core will be sleeping after that,
which means process consumes more battery at that particular time but overall baterry should be efficient as there would be more sleeping time.
2. About volting, so far I have not seen min and max volting. So is there only one voltage/power drawn for max and min CPU speeds by CPU?
Please correct me if any of my statements is wrong.
Appreciate your help,
Thanks,
Franklin B.
Overclocking the minimum frequency to 1.3ghz would probably decrease your processor's life if you use your phone too much but I have been actually increasing my phone even 200mhz more than it was in stock ROMs, i've been using my device for more than 2 years and it still works perfectly. Finally, it all depends on how much your phone is good.
I also decreased the cpu min and max frequency when phone sleeps to 256 mhz which decreased a lot battery consumption.
Hope i helped !
Don't forget the THANKS button
1.you can but your battery life will be drastically reduced! There is a good amount of time after the screen is off and before the phone sleeps! So if over clock the min to 1.3Ghz, the processor will be running at 1.3Ghz till it goes to sleep! But if that's what you want you can do that!
2 . I'm not so sure about this topic either but I think the processor operates at a particular voltage and I could be wrong!
Sent from my GT-P3100 using Tapatalk 2
Thank you Guys
Franklin Bernard said:
1. why not overclock the Mn frequency to 1.3Ghz? because the backgroundprocess would be fast and phone/core will be sleeping after that,
which means process consumes more battery at that particular time but overall baterry should be efficient as there would be more sleeping time.
2. About volting, so far I have not seen min and max volting. So is there only one voltage/power drawn for max and min CPU speeds by CPU?
Click to expand...
Click to collapse
Hi, I received your PM. I agree with the guys about the heat issues, longevity, and battery life etc. The answer to your question #2 will help you better understand things.
In all kernels, there are frequency/voltage scaling tables. For every frequency step (clock speed) in the table, it corresponds to a specific voltage. It gets a bit more complicated than this of course, but that is the basic way things are setup in the kernel. The higher the frequency, the higher the voltage is required to be to keep the CPU (or GPU, bus, RAM etc.) stable at a given clock speed. The more voltage, the more current, and the more heat is generated. The longer you stay at higher clock speeds/voltages, the better the cooling system you need to have. Supply regulators are defined to feed the core and rail voltages so that the processor can live in a happy environment no matter what it is being asked to.
As far as power consumption, it's all about getting a unit of work done in a timely/efficient fashion using the least amount of power consumption. If the phone is sleeping, the word "timely" takes on a different meaning so then it is mostly concerned with power consumption and getting the background tasks completed effectively without having the phone experience the sleep of death (SOD). What you are talking about is the theory of "race to sleep" so that the work can be done quickly and the phone can go back to sleep where it uses the least amount of power (clocks actually turn off during deep sleep and cores are turned off). However, there is a happy medium to this theory and heat and battery consumption are the main enemies. Heat can also rob efficiency, more current is required when a circuit heats up. The more a phone wakes up to do syncs for email, apps, social networking, missed calls etc., that work can stack up throughout the day. The question comes down to how can the device get this work done using the least power and keep the device cool. On the N4, the lowest frequencies can use ~700-800mV per core while the highest frequencies can use ~1100mV. There is a drastic difference in the amount of heat generation between this range.
I think this should give you the general idea and maybe more that you wanted to know! Here are some links to check out if you are interested. Google and you will find many many more articles and research papers.
http://en.wikipedia.org/wiki/Voltage_and_frequency_scaling
http://atrak.usc.edu/~massoud/Talks/Pedram-dvfs-Taiwan05.pdf
Thanks a ton !!!

Categories

Resources