[REQ] Standalone fix for high CPU freq with screen on - XPERIA X10 Android Development

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

Related

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] Why 480MHz? Can't find original posts

Hello,
It's a well know 'fact' that our P500 draws the same amount of power when clocked at anything below 480MHz, so underclocking it below 480MHz brings no battery benefits.
I have been trying to find the reason for this, but I can't find the thread / post in the search that details the reasons for this and how it was tested. My guess is that it's buried in one of the many bloated development threads... If someone can point me in the right direction that would be great.
Cheers!
I know this thread has a quote of this post and that this is a well known information but, besides this community common knowledge (by which I'm very grateful), I also can't find any specific data on this matter.
I even found this thread that aks the same thing, but it has no answers.
So it would be great if someone could give us a bit more information about this.
Thanks in advance!
480MHz and below use the same voltage. It takes more battery to jump from say 245 to the max freq
InfiniteRisen said:
480MHz and below use the same voltage. It takes more battery to jump from say 245 to the max freq
Click to expand...
Click to collapse
Yes, we all 'know' this but where did this information come from?
This post shows that it is a general MSM7x27 'feature' that all frequencies below 600MHz use the same voltage. This is where we assume this to mean that it uses the exact same amount of power whether it is running at 122, 245, 320 or 480MHz, so we're taking a speed hit for no power benefit.
Does anyone knows of any benchmark tests to confirm this? I might try some tests this week, set the min/max MHz to the same value and run a program to keep the CPU at 100% and see how long it takes to drain the battery (perhaps a huge pi calculation or something).
Which do you value more, source of information or proof now?
InfiniteRisen said:
Which do you value more, source of information or proof now?
Click to expand...
Click to collapse
Surely that's the same thing, a good source should also contain proof of the claims it is making...
I'm not saying it's wrong, but if nobody has tested it we can't be sure, right?
adfad666 said:
Surely that's the same thing, a good source should also contain proof of the claims it is making...
I'm not saying it's wrong, but if nobody has tested it we can't be sure, right?
Click to expand...
Click to collapse
On my personal experience, i would actually say 245mhz consume less battery than 480mhz. But I still prefer the latter as it's a bit more speedy. On battery life, it's just a <1% difference between the two.
as far as what ihve read!!people say it takes infact more power consumption when we underclock very low frequencies like 122 ,since it takes more work for the phone to operate in a laggy state with very less cpu frquency ..and thats the reason i think(not sure) why we are asked to have a minimum of 480mhz frequency though i prefer 320
Test setup suggestion:
Test 1 = Idle
Set to 480/480 set to airplane mode overnight and look at battery drain.
Do the same for 245/245
Compare results
Test 2 = Intermittent load
Set to 480/729- test using on/off series of tests not 100% all the time. You want the governor to scale frequently during the test
Same test above but @ 122/729
Compare results
This will give you 2 conclusions
1 - 480 at idle does/doesn't drain battery as much as 245
2 - Increased scaling does/doesn't increase drain battery.
The longer the phone is awake the more it drains battery. Also take note of how long it takes to complete test 2.
**EDIT**
Intel has done extensive laboratory testing showing the results of Speedstep and the results carry over to ARM and governor scaling.
I'm inclined to follow the crowd on this one, no increase in voltage = no increase in power draw. That's scientific fact.
Increase in frequency will increase heat. Unnecessary scaling will also increase heat. Increased heat leads to shorter battery life, consequently overtime the battery can't hold as much of a charge. So again, nothing decisive here to make me change my mind.
If you still want to, then proceed with the tests above.

Underclocking: What are your thoughts?

Does anyone underclock? I only do it in certain situations. Do you see it as beneficial? Why or why not?
Sent from my Galaxy S2
EDIT: My settings are attached as a screenshot. My device is underclocked 50% of the time.
In my opinion and from personal use, I don't find underclocking to really be beneficial. I never really saw any better battery life. On the same note, I never really found overclocking and undervolting to be extremely beneficial either. It's like the gains aren't worth the time to tweak everything.
Undervolting, yes. Limiting clock speeds, and setting governer to conservative, yes. I say 1ghz is the best spot without losing much performance, and I get 2 days of battery life (sometimes) compared to the one day before... Stock kernel, you aren't going to see much of a difference because you can't undervolt...
I keep my phone at 800max 200min on conservative with a 85% up and 20% down threshold. I don't even see the phone slow down at 800 plus it saves some battery!
I force underclock when I'm in a situation where I KNOW the clock should never ramp up (Screen-off I set to 500) as a "safety measure" to prevent surprises.
I also may force underclock to 800 when running Navigation once my vehicle dock comes in - since we can't crank our charge current up.
Entropy512 said:
I force underclock when I'm in a situation where I KNOW the clock should never ramp up (Screen-off I set to 500) as a "safety measure" to prevent surprises.
I also may force underclock to 800 when running Navigation once my vehicle dock comes in - since we can't crank our charge current up.
Click to expand...
Click to collapse
My screen off is set to this also (200-500, conservative). You can use Tasker to change frequencies for specific apps automatically.

[Q] Does underclocking saves battery?

I've install Rom Toolbox,
and i saw there is a "CPU slider" where i control the clock speed.
i've put it to 1000MHz instead of 1200MHz and tested it for several days
i really dont feel any difference in performance.
browsing seems same, games like asphalt is equally smooth.
heating is similar, equally warm.
the only difference is quadrant benchmark.
1200MHz scores 3200-3400
1000MHz scores 2600-2900
frankly speaking, i'm not sure if there's any difference in battery life.
is there any way to accurately test whether the clock speed affects the battery life?
i've seen other threads, where there are very different opinions.
some say it will improve battery life, and some say its worst.
http://forum.xda-developers.com/showthread.php?t=726019
Quote: (SetCPU doesn't make a difference in battery life, it can only shorten it. The kernal already has the best settings for CPU speed built in.)
http://forum.xda-developers.com/showthread.php?t=1305465
Quote: (if you are able to stand the side effects of underclocking, it will surely boost your batery life.)
On my SGS2 program called CpuSpy shows that 1200MHz is about 1% of total cpu time (remember that governor is ondemand and CPU is at 1200 only when need it). If power consumption is directly proportional to clock speed by limiting it to 1000MHz you will get about 20% less power usage by 1% of time... looks like 0.2% power saved ? Soo if Your phone works for about 48h on one charging this way You can get about 6 extra minutes. It's just my guess...
Also have to consider if slower cpu causes screen to eat power for longer time... (because You have to wait longer for operation to complete)
slig said:
On my SGS2 program called CpuSpy shows that 1200MHz is about 1% of total cpu time (remember that governor is ondemand and CPU is at 1200 only when need it).
If power consumption is directly proportional to clock speed by limiting it to 1000MHz you will get about 20% less power usage by 1% of time... looks like 0.2% power saved ? Soo if Your phone works for about 48h on one charging this way You can get about 6 extra minutes. It's just my guess...
Also have to consider if slower cpu causes screen to eat power for longer time... (because You have to wait longer for operation to complete)
Click to expand...
Click to collapse
HI, thanks for replying. I understand what you mean. the phone dont operate at 1200MHz all the time. but when using browser, and playing games, such as asphalt, it runs at max CPU usage almost the entire gaming duration.
Anyway.....
the real question is whether the clock speed is directly proportional to the battery consumption.
while reading your post, i thought of a brilliant ideal how to verify this.
the CPU slider not only allows you to set the max CPU speed,
you can set the min CPU speed as well.
So, i thought of an experiment, lets set the min & max CPU to 1200MHz,
this way, the phone will be running constantly at max CPU even when its idle.
let the phone be turn on till it run out of battery, record the time, T1.
then repeat again with max and min CPU set to 1000MHz.
record the time it is turn on till it run out of battery, record time as T2,
then compare T1 & T2, this could certainly work.
it would be nice if any member here happens to have 2 sgs2, and tried them ;-)
There are two more things to consider
1. CPU is not the only element that consumes power.
2. SGS2's Exynos is always clocked at 200MHz when the screen is off - check if this minimum slider affects that too.
Please let know how your experiment goes.
Regards
when the screen is off, the phone will be in "deep sleep" state. i think thats less than 200MHz.
anyway, i wont be doin this experiment any time soon.
you see, this is my only phone, i need to use it.
i dont have much oportunity to leave it and wait for it to run out of juice.
still, i'll try it when i have the chance.

[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