Hi all,
Has anyone tried using SetCPU on his rooted legend? I tried on my non rooted one just too have a look at the CPU frequencies, to see how it behaves at idle and so, and while max is 600MHz the min is "only" 480MHz.
Doesn't that sound a bit high for the min frequency? The snapdragon is clocked at 1GHz and idle is 250Mhz. Has anyone tried lowering the idle frequency on the legend to gain some battery life?
Hi Bricolo_fr,
I found this entry in the FAQ of SetCPU documentation fount here (http://www.pokedev.com/setcpu/):
"Why aren't there more speeds to choose from?
The speeds which the CPU can run at is in part a kernel limitation and in part a hardware limitation. Attempting to set the CPU frequency to anything else won't cause any changes in CPU speed. On some devices, the kernel can be modified to enable certain other frequencies. There are other speeds that would be useful, the capabilities of the processor itself often hinders which frequencies are available on a device."
Anybody has the skills for making a kernel change?or some ideas for us being able to use this properly?
Hi,
Today I rooted my legend and tested again SetCPU. At the begining, it was only possible to set CPU from 480 to 600 mhz, but then I red this in SetCPU documentation:
http://www.pokedev.com/setcpu/
--------------
10. Disabling Perflock
On most stock HTC kernels and some custom kernels, HTC has enabled a driver called "perflock" that constantly resets SetCPU's Max and Min settings. This does not apply to mostly "Google experience" HTC devices such as the T-Mobile G1, the myTouch 3G, any Google development device, or the Nexus One. It does, however, apply to "HTC Sense" devices such as the HTC Hero, Droid Eris, HTC Desire, HTC Incredible, EVO 4G, and myTouch Slide. Non-HTC devices never have perflock enabled.
SetCPU can disable perflock on newer HTC kernels, giving you control of the Max and Min settings of the CPU. To do this, press the Menu button on your device in the Main tab and choose "Disable Perflock." Read through the notice and then press the button in the dialog. If successful, you should be able to change the frequency with SetCPU. If this process fails, please e-mail the developer with your kernel version and device so support can be added.
Keep in mind that disabling perflock does not enable overclocking, though some overclocked kernels may require perflock to be disabled. Overclocking, in most cases, requires a custom kernel.
-------------------
So, in the last version of SetCPU there is an option in the menu called "Perflock Disabler" With this option, it is possible to select the minimun frequence to any value from 0 to 600 Mhz.
I have not been able to modify maximun to a value higher than 600 mhz (overclock) but I think the best target is to reduce battery consumtion decresing the minimun mhz value. Actualy I set minimum 128, maximun 600.
so, are you sure you could set it to the minimum of 128? because i think it doesn't work actually...at least without a modified kernel
I got a min at 19 MHz. to 600 Mhz.
casca said:
so, are you sure you could set it to the minimum of 128? because i think it doesn't work actually...at least without a modified kernel
Click to expand...
Click to collapse
Yes. Also confirmed with the app Os Monitor:
-Saling range: 122880-600000
-Frequency range:19200-600000
-Governor: ondemand
-Current: 122880
Software version: unbranded 1.31.405.4 (just rooted with Monodaco method and applyed all OTA updates)
In SetCPU Info:
-Time in state:
19200: 22
122880: 1169071 (Currently I set minimum at 122880)
128000: 0
245760: 269491
480000: 362472
600000: 347583
SetCPU in Legend allows the following governors: userspace, ondemand, and perfromance. Ondemand works fine. Userspace and performance makes extrage things (i tested quickly, to be honest)
I defined several profiles in SetCPU, depending of battery chage, and seems to work fine. But, I did not enable "Set on boot" option in SetCPU and need to activate "Perflock Disabler" in SetcPU menu everytime I reboot Legend (I prefer to test a SetCPU a few days before enabling "Set on boot")
well...this is nice... after disabling the "perflock" option...
I set the minimum value to 19mhz....lol... with "ondemand" management of the cpu...
I think I'have seen a HUGE improvement of the battery...When I mean HUGE, I really mean HUUUUUGE!
Like, for a 12hours use always with 3g data on,and 2 hours of wireless...lost only 30% of battery...
Testing today for more results...
I use the profile manager in SetCpu to set the CPU to 128-256 while screen off, max mhz while charging, etc.
I have seen big improvements.
Yes, battery improvement is very nice. This solution is great.
I am testing a profile to 122-245 while usb charging. So, when I use Googla Mobile Navigation it is able to load a bit battery while using GPS (normaly drains battery a bit while charging)
out of charge at 6am...it's now 10am...3g ON...wireless ON now for 2hours...
So, in resume, on 4 hours of use the battery loss - 6%
At this rate, and with these settings it should last for about 66hours, about 2,7 days.
Let's see...
casca said:
out of charge at 6am...it's now 10am...3g ON...wireless ON now for 2hours...
So, in resume, on 4 hours of use the battery loss - 6%
At this rate, and with these settings it should last for about 66hours, about 2,7 days.
Let's see...
Click to expand...
Click to collapse
Holy crap!!Yea, that would definately make me root!
Sent from my HTC Legend using XDA App
I can only say...in 3g mode and with the wireless ON 90% of the time from 6am to 00.00, i had more than 40% battery left at 00.00 when i went to bed.For me it's a new record.
Sent from my HTC Legend using XDA App
In my case, tested yesterday:
Battery consumption:
battery at 100% at 10:00 am. 3g data on 1 minute every 15 minutes (JuiceDefender), 30 mÃnutes call and 8 emails received and red a long de day. Battery was at 41% at 1:00 am. I spent the day in a place with low 3g network (between 1 and 2 bars in the top right corner)
SetCPU Configuration:
-Profile 1: when battery is between 50% and 100%: min 122 mhz, max 600 mhz
-Profile 2: when battery is between 30% and 50%: min 122 mhz, max 480 mhz
-Profile 3: when battery is between 0% and 30%: min 122 mhz, max 245 mhz
So, battery save is very nice.
this is soooooo interesting....
I couldnt find the app in the market...i found the apk in the HTc Dream forum...version 2.01 by coolbho. Is it ok to use that ?
i think so...
in worst scenario...it won't run lol...(i think!)
If i use linpack i can see someone with a legend that runs on 711mhz? Am i missing something can we overclock..
Sent from my HTC Legend using XDA App
I've made some profiles too, and it's working really well.
Are you guys using the auto detection of the device? I've used it in the first time, but it detected my device as a Hero(?) since the max frequency was only 528mhz. Then I've changed the device and selected MSM7x27 manually and got the 600mhz max and many middle frequencies like 120, 122 and 128mhz. Now I've changed the device again to auto detection and it worked this time, got the 600mhz max, but less middle frequencies (no 120 or 400mhz). Also, i'm using 122mhz as the minimum frequency in all profiles, isn't 19mhz too low? Or the demand feature really works that well and I will not even notice any difference?
wasup!
19mhz is not too low, i've used it and had a huge increase in battery life.
I am using profiles also at the moment.
Regards
Learners Lisence said:
this is soooooo interesting....
I couldnt find the app in the market...i found the apk in the HTc Dream forum...version 2.01 by coolbho. Is it ok to use that ?
Click to expand...
Click to collapse
Hi,
You can download from this link:
http://forum.xda-developers.com/showthread.php?t=505419
If you like the app, you can donate getting from Maket. Look for "setcpu for root users". It is only 1.99 USD.
Hello,
I've flashed cyanogenmod 7.1 RC1 and immediately switched to using the smartass governor. However, I've noticed that the apps that can detect CPU speed (like SetCPU or OS Monitor) always detect frequency as 480 MHz. I've set the Max freq to 748 MHz and min to 245 MHz, but whatever I do, the frequency stays at 480 MHz. I've also seen in the messages section of OS Monitor errors about setting to 768000 from 480000, so I guess there is some kind of a problem there.
So is there a problem or does this governor work in a completely different way - if so, how? ;-)
Thanks a lot.
Cheers...
Smartass caps the frequency when screen on to 480 MHz to ensure responsiveness. This also helps with video playback being smooth, as it otherwise will begin to stutter when the frequency is lower than this.
OK, but how does it behave during screen off and battery low scenarios? Does it put the freq to to minimum value which is selected in the freq options of cyanogenmod setup?
I just want to understand if indeed the smartass governor can replace setcpu with profiles using the ondemand governor and keep the battery usage at optimal values.
Thanks...
When screen off smart ass governor sets the minimum CPU frequency to the value you entered (even below 480 which is to conserve the battery).
Sent from my HTC Wildfire using XDA App
Right, so I'm going mad trying to undervolt my CPU.
Sometimes I drop voltages by -50mv, and the phone crashes. Alright I know that the voltage settings have been applied, and it's too low.
On other occasions, I can drop the voltage by ridiculous amounts and have 2.2Ghz running at 600mv (which is obviously impossible), and the phone doesn't crash for two or three days. Obviously the settings aren't being applied.
So my question is, when is the best time to apply voltage settings such that I know they are actually in effect? And is there a way to verify that the voltage settings are actually in effect?
I have been doing a bit more testing.
It seems to me that voltage settings are applied if you apply the setting to all frequency levels (for example some apps like Kernel Tweaker have a -25mv button). Hitting that button twice (for a total of -50mv) causes the phone to crash. However if I were to adjust just the voltage for one frequency at a time, the phone doesn't crash.
Should this be reported to kernel devs? Just want to make sure I'm not doing stuff wrongly.
First of all voltage regulator has some minimum and maximum values, if you go above or bellow those, they will not be applied. If you change voltage just for one frequency, do you force CPU into that particular frequency? Otherwise CPU could be skipping that frequency, for example if you change 600MHz, CPU could be going from 300MHz idle to 0.9GHz skipping some in between values and never actually stay on your changed 600MHz.
What voltages can I set for frequencies from 2457 MHz? For now I have such voltage settings.
You must've spent a lot of time perfecting that. Can you remind me of your SoC's PSV value? Boeffla's app lists it in the Overview section as ASV/PSV.
I tried your 600 mV idle voltage on my PSV 9 phone. Didn't work, got a soft reboot. 625 mV seems to work. Seems crazy this is possible when the stock idle voltage is around 775 mV.
https://forum.xda-developers.com/htc-one-m8/general/guide-snapdragon-801-clocking-voltage-t2807173
edit: Tested for a few hours. Currently using
990 mV - 2534 MHz
1010 mV -2611 MHz
1030 mV - 2764 MHz
1045 mV - 2841 MHz
1075 mV - 2899 MHz
Seems stable in stability tests, haven't tried in daily use yet. If you want to increase the max speed the sweet spot is probably 2764 or 2841.
If you haven't seen this chart yet it has estimated voltages for each PVS binning on speeds above stock, maybe it's what you're looking for. According to the table the "worst" voltage a terrible PVS stock phone will use is 1120 mV. If you do not exceed that while overclocking your phone will probably be okay.
Thanks for the voltage references, I'll use them to tweak some more!
I came up with a stability test that hopefully tests phone stability without causing it to burn up. You just need the Boeffla app and Termux.
-Make a separate Boeffla profile
-Manually select and apply the new profile every time you're testing the undervolt
-Add some extra startup delay in the Boeffla settings
-In the Boeffla app change the Tuned governor's profile to "Performance". The normal profiles don't really care about using high CPU states so you need this.
-Don't change the hotplugger, default is "Tuned"
-Reduce your max charging speed for AC and USB to 1200 mA if you want to do testing with a charger plugged in
-Try to start on 100% charge so less heat is generated charging
-Lock the GPU to 27 MHz. Why not? The screen will be off anyways.
-Make undervolting adjustments to your CPU states' voltages. Only tweak the values of one or two states at a time.
-Adjust the minimum and maximum CPU speeds with the sliders so your phone is more likely to hit the states you just tweaked. If you just tweaked a low CPU state set it to the minimum speed, and if you just tweaked a high CPU state set it to the maximum speed etc.
-Launch Termux and then "Acquire Wakelock" in the menu or in the notification bar
-Run this one-liner:
while true; do openssl speed -evp aes-256-gcm; sleep 15s; done
Click to expand...
Click to collapse
Explanation: No real reason to do it this way. Openssl's speed benchmark with AES is a cheap way to test CPU stability on many computer systems. This runs a benchmark on 1 thread, sleeps for 15s to let the phone cool off for a bit, and repeats. If the phone isn't throttling it will typically max out the CPU clock of the core the thread's running on. Sometimes you can spot anomalies when the benchmark scores deviate a lot. You can also add -multi [# of cores you want to test on] to run the test on more cores but this may heat up the phone too much and cause anomalies.
-Give your phone some cooling with a fan or something or put it on top of something that dissipates heat.
-Turn the screen off to keep heat down or keep it on low brightness.
-Check the phone once in a while to see if it's still stable
-If you are happy continue adjusting other values
-This test isn't perfect because it's not representative of real-world use but hopefully it's close enough :silly:
-The battery generally doesn't like it when it goes above 40C just pointing this out :silly:
-Possible alternative stress test: dim the screen to minimum brightness and play a video the phone doesn't really like such as webms
-If your phone is looping from bad settings just hold power + vol down + home to force a hard reboot
Boatshow said:
You must've spent a lot of time perfecting that. Can you remind me of your SoC's PSV value? Boeffla's app lists it in the Overview section as ASV/PSV.
I tried your 600 mV idle voltage on my PSV 9 phone. Didn't work, got a soft reboot. 625 mV seems to work. Seems crazy this is possible when the stock idle voltage is around 775 mV.
https://forum.xda-developers.com/htc-one-m8/general/guide-snapdragon-801-clocking-voltage-t2807173
edit: Tested for a few hours. Currently using
990 mV - 2534 MHz
1010 mV -2611 MHz
1030 mV - 2764 MHz
1045 mV - 2841 MHz
1075 mV - 2899 MHz
Seems stable in stability tests, haven't tried in daily use yet. If you want to increase the max speed the sweet spot is probably 2764 or 2841.
If you haven't seen this chart yet it has estimated voltages for each PVS binning on speeds above stock, maybe it's what you're looking for. According to the table the "worst" voltage a terrible PVS stock phone will use is 1120 mV. If you do not exceed that while overclocking your phone will probably be okay.
Thanks for the voltage references, I'll use them to tweak some more!
I came up with a stability test that hopefully tests phone stability without causing it to burn up. You just need the Boeffla app and Termux.
-Make a separate Boeffla profile
-Manually select and apply the new profile every time you're testing the undervolt
-Add some extra startup delay in the Boeffla settings
-In the Boeffla app change the Tuned governor's profile to "Performance". The normal profiles don't really care about using high CPU states so you need this.
-Don't change the hotplugger, default is "Tuned"
-Reduce your max charging speed for AC and USB to 1200 mA if you want to do testing with a charger plugged in
-Try to start on 100% charge so less heat is generated charging
-Lock the GPU to 27 MHz. Why not? The screen will be off anyways.
-Make undervolting adjustments to your CPU states' voltages. Only tweak the values of one or two states at a time.
-Adjust the minimum and maximum CPU speeds with the sliders so your phone is more likely to hit the states you just tweaked. If you just tweaked a low CPU state set it to the minimum speed, and if you just tweaked a high CPU state set it to the maximum speed etc.
-Launch Termux and then "Acquire Wakelock" in the menu or in the notification bar
-Run this one-liner:
Explanation: No real reason to do it this way. Openssl's speed benchmark with AES is a cheap way to test CPU stability on many computer systems. This runs a benchmark on 1 thread, sleeps for 15s to let the phone cool off for a bit, and repeats. If the phone isn't throttling it will typically max out the CPU clock of the core the thread's running on. Sometimes you can spot anomalies when the benchmark scores deviate a lot. You can also add -multi [# of cores you want to test on] to run the test on more cores but this may heat up the phone too much and cause anomalies.
-Give your phone some cooling with a fan or something or put it on top of something that dissipates heat.
-Turn the screen off to keep heat down or keep it on low brightness.
-Check the phone once in a while to see if it's still stable
-If you are happy continue adjusting other values
-This test isn't perfect because it's not representative of real-world use but hopefully it's close enough :silly:
-The battery generally doesn't like it when it goes above 40C just pointing this out :silly:
-Possible alternative stress test: dim the screen to minimum brightness and play a video the phone doesn't really like such as webms
-If your phone is looping from bad settings just hold power + vol down + home to force a hard reboot
Click to expand...
Click to collapse
I have PSV 10. My current undervolting.