Underclock Settings Not Sticking - Galaxy S III Q&A, Help & Troubleshooting

I tried underclocking my CPU so my battery wouldn't die (even when it's plugged in it still slowly dies while I'm using it if I don't underclock a bunch) and every now and then (random intervals), the max cpu frequency would increase to something random (often 918 MHz, often 1188 MHz, and other values too). I've tried setting with AnTuTu as well as No-Frills, and completely removed every app from my superuser allow list, but nothing seems to prevent this from happening. After some research the only thing I can come up with is something about mpdecision/thermald, but I'm not sure if/how I should disable this or if I would need to replace this. I'm also not sure that this is the root of my issues. I'm running Eclipse ROM with leankernel.
Thanks,
Steve

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] Could SetCPU cause random shut downs?

Since yesterday my phone has been shutting down randomly whenever the screen turned off. Coincidentally, yesterday I also created a profile to underclock the processor to 200mhz when the screen is off. However I forgot about that and assumed it the random shut downs were a problem with Villain Rom or the kernel I was running so I tried every kernel I could find and change ROM, but to no avail, it kept shutting down.
I just had the thought about SetCPU, removed the underclock and alas, it is fine! no random shut downs at all...
Has anyone else had a problem like this?
Yes, that's likely causing the problem. Why would you underclock to 200mhz in the first place? The benefit (if there is any) is minimal. 200mhz is a to low value for most devices.
If you under volt too much it can have trouble turnibg back on from standby. What voltages you set?
Sent from my GT-I9100 using XDA App
Yeah I didn't realise that, I used to underclock to 200mhz when my screen was turned off on my Desire as to preserve battery life which is why I didn't think it was an issue, clearly the Galaxy does not like it hence random shut downs.
I was running at 1200mhz when battery is between 50 and 100% then at 800mhz <50%.
Removed all profiles now and have just set it as on demand

[REQ] Standalone fix for high CPU freq with screen on

As I understand solution for "998 MHz with screen on" bug is found: http://forum.xda-developers.com/showthread.php?t=1225411&page=17#post16944722
We need to replace only one governor.
I don't want to play with different ROMs and kernels and I'm looking for simplest solution.
Is it possible to compile it as a module ("ondemand_mod" for ex.) and add it to stock ROM?
Or any other (simple) way?
Wrong section ...
Sent from my X10i using Tapatalk
Why wrong Section, this is Development to get the CPU Governor working correctly
Wolfbreak said:
Why wrong Section, this is Development to get the CPU Governor working correctly
Click to expand...
Click to collapse
Exactly, this is the right section for such request.
However, I can't help but wonder: is this really a "problem"?
No offence to anyone, but I find that the phone is very snappy
when on max frequency... The big problem for me, would be if it
didn't go into Deep Sleep immediately after turning the screen off
and stayed at min frequency for an extended period.
When the screen is on (aka using the phone) I'd like it to be as FAST
as possible. That's the reason I use the minmax governor.
Anyway, again, I don't mean to argue with anyone, I am just
presenting my point of view.
My_Immortal said:
However, I can't help but wonder: is this really a "problem"?
No offence to anyone, but I find that the phone is very snappy
when on max frequency... The big problem for me, would be if it
didn't go into Deep Sleep immediately after turning the screen off
and stayed at min frequency for an extended period.
When the screen is on (aka using the phone) I'd like it to be as FAST
as possible. That's the reason I use the minmax governor.
Anyway, again, I don't mean to argue with anyone, I am just
presenting my point of view.
Click to expand...
Click to collapse
Yes, it's really problem.
Higher frequency - higher power consumption. Moreover - with higher frequency CPU used with higher voltage so consumption is even more higher. So at 998 MHz CPU eats about 5 times more battery than on 246MHz.
With properly tuned governor I don't feel any real lags or slowdowns.
And, when screen is on CPU load is usually is lower than 20% at full frequency. So I don't want to waste my battery.
As I see it's possible to compile and use governor as module.
Could someone compile it? And assemble as xRecovery package?
Or point me where to read about compiling for arm, where to get tools and so on...
Karlson2k said:
Yes, it's really problem.
Higher frequency - higher power consumption. Moreover - with higher frequency CPU used with higher voltage so consumption is even more higher. So at 998 MHz CPU eats about 5 times more battery than on 246MHz.
With properly tuned governor I don't feel any real lags or slowdowns.
And, when screen is on CPU load is usually is lower than 20% at full frequency. So I don't want to waste my battery.
Click to expand...
Click to collapse
The thing is, on 245 MHz, you can't get any kind of decent performance.
Try this: set the minimum and maximum CPU frequency with SetCPU to 245 and attempt to use the phone normally.
Also, you might be right about voltage, but if the CPU is forced to work on lower freqs when it actually needs higher, there's definitely stress and increased battery consumption.
My phone lasts for more than 24 hours and it's always at max frequency when the screen is on. No lag, no freezes, no drain.
I do agree that the ondemand governor might not function as expected but I fail to experience the actual problem. That might be just me though.
Xperia X10i via Tapatalk
My_Immortal said:
The thing is, on 245 MHz with high load, you can't get any kind of decent performance.
Try this: set the minimum and maximum CPU frequency with SetCPU to 245 and attempt to use the phone normally.
Also, you might be right about voltage, but if the CPU is forced to work on lower freqs when it actually needs higher, there's definitely stress and increased battery consumption.
My phone lasts for more than 24 hours and it's always at max frequency when the screen is on. No lag, no freezes, no drain.
I do agree that the ondemand governor might not function as expected but I fail to experience the actual problem. That might be just me though.
Click to expand...
Click to collapse
There is no need to work on 245MHz as proper governor rise frequency automatically when it's necessary.
And really no stress for CPU to work an low frequency at full load. Moreover - CPU will consume more power at 500Mhz with 45% load than at 250Mhz with 95% load.
Sometime I use phone for navigation - long time with screen on and very low load. In this scenario battery drains very fast.
And last one - I like to have everything working properly. In case that I'll really need high frequency all the time I'll use other governor. I just want to have a choice.
I need a simple solotion for this too..I use z kernel and I found that Thego2s kernel fixed this problem..I was going to flash that kernel but think that has a bug and stoucks on logo ..can some one sayas a simple way?
Yes, I think a lot of people would prefer to use just small and simple fixes rather than replacing the whole kernel with a lot of nice but (personally) unnecessary features.
I am waiting for developers to release a fix for this problam

[Q] Wrong cpu core handling?

As I noticed, when I change governor in setcpu to anything except hotplug the system information states that: We have only one core! WHAT? WHY?
I know, it can be a delay between measures, and some of the governors are reducing freq and so on. I know how could that work. Hot plug can disable the second core, and when i measured MFLOPS with linpack (gov: performance) that clearly shows same score with multithread maybe a bit less than single thread. I had only one active core... Something not clear sometimes. I repeated the tests with every governor and I don't have any idea whats wrong with them, sometimes the second is just out of usage, sometimes working well.
Sorry if that not enough clear.
Anybody else can check that?
I just benchmarked with linpack and also get about the same scores for multi and single-Thread performance. That is indeed very strange. I tried changing back to hotplug but still got the same score for multi and single-Thread performance.
edit:
I removed "set on boot" in SetCPU and rebooted, THAN i got dual core performance again with a score of about 55 MFLOPS. I replaced SetCPU with no-frills CPU control, changing back to hotplug allways seem to work there instantly. Hotplug makes the device freeze randomly and anything else makes it half as fast. I'm beginning to dislike my Archos Tab...

Categories

Resources