Confirm on official miui forum (Low energy efficiency. Redmi 3/Pro/S/X and other) - Xiaomi Redmi 3 Guides, News, & Discussion

Text from petition.
Low energy efficiency. Redmi 3/Pro/S/X and other
http://en.miui.com/thread-494354-1-1.html
---------------------
6 from 8 working cores not sleep in the low activity mode. When the screen is turned on, but no heavy applications are running. For example reading or viewing browser. Why? Look at the screenshot program CPU-Z is open on your phone, you'll see that active 6 from 8 cores workers. (Sometimes 8 from 8) It's drain battery.
Is it possible to leave one core from the cluster performance and and reduce it minimum frequency? Up to 200-400 Mhz? (other make "stopped" and lauch them when it needed) )
Could you also disable a couple of cores non-productive clusters and reduce their minimum frequency? (200-400 Mhz) (other make "stopped" and lauch them when it needed) )
GPU Clock Speed why high frequency GPU (375 Mhz) in the low activity mode. (When the screen is turned on, but no heavy applications are running.) Could you reduce GPU frequency? (Up to 50-375 Mhz) Make scaling from loads.
--------------------
I know exist patch on Twrp which gives opportunity to powersave. But i want it in official Miui stable as a default.
Please confirm and write on Miui forum what you think about energy efficiency. Redmi 3/Pro/S/X and other
Thanks.

Have you tried kernel adiutor?

Related

[TIP]Underclock your TI OMAP 850 based device (100% CPU Utilization workaround)

I own a ASUS P320 (Galaxy Mini) which is notoriously infamous for its battery life. Therefore I was looking for a way to underclock the processor to squeeze out a few more hours of its battery. I wanted to autoscale the CPU Speed as and when required.
OMAPScaler did not work though it was able to set the processor speed to the desired value, so did OMAPClock, but the CPU scaling functions did not work. Neither did Homescreen PlusPlus. The reason I found out that my CPU always reports a 99.8% to 100% usage thus these utilities always set it to the highest speed I had configured (201 MHz for my device).
It was then, while using Chi Tai's awesome Homescreen PlusPlus Advanced version that I found this registry setting which enables an alternative method of CPU Load calculation.
Code:
Create a DWORD called UseIdleLoop of value 1 under \HKLM\SOFTWARE\Microsoft\Today\Items\Homescreen PlusPlus. Reboot/Reset your device.
The CPUScaler function started working after that Also the "Get Original CPU Speed" function does not work. You can manually save it and click on OK to save it.
My CPU Scaler settings :
Min : 117 MHz
Orig: 143 MHz
Max: 201 Mhz
No Boost. CPULoad Threshold : Low 30%, High 80%. All other settings default.
Works fine with my ASUS 320. Will report on battery life in a couple of days.
Thanks to timmymarsh who helped me a lot with my questions via PM on this thread : http://forum.xda-developers.com/showthread.php?t=549145
abesh

Bug in SetCPU or in Nexus kernel?

If I set the min cpu speed to the minimum (245MHz) using SetCPU and then refresh the CPU monitor, it's always at Max (998MHz).
However if I set the min to 384MHz and refresh, it's at 384 (unless something else is going on in the background in which case it might increase a bit).
This is all with the CPU governor set to on-demand
If I set MAX cpu to 245 then the monitor says it's 254, btw, so it seems it can run at that speed fine and the monitor is working ok apparently. It's just with min speed set to 254, it seem to stick at 998Mhz.
Does anyone else see this behaviour?
It this just a problem with SetCPU, or an underlying issue?
well, having played around with it some more, it seems it's actually the cpu speeding itself up so rapidly when monitoring it that it registers max MHz!
If I increase the up threshold, or the sampling rate, so that it doesn't step up a gear so quickly, then the monitor reads 245MHz.
This does raise the question though that if simply pressing the refresh button is enough to up the cpu to max when it's at the default settings, maybe there are better settings for battery life?
Maybe a slightly higher minimum speed is better, so that it doesn't step up all the time (because when it does, it seems to go straight to max).....

Legend and SetCPU? (min and max frequency you can achieve?)

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.

[GUIDE] SGS2+Android can be power efficient - One successful configuration

1. Abstract
2. Approach
3. Baseline configuration and results
4. References
5. Disclaimer
1. Abstract
Initially I was quite dissapointed with the battery life of the Samsung Galaxy S II i9100 with Android 2.3.4 out of the box. Coming from the Symbian world Nokia E71 I have been used to 6-7 days without recharging, while on SGS2 I got barely 1.5 days of normal usage. I started to optimize, and felt that the hardware is very capable for power saving, but the software is not optimized. After turning off all synchronization, going thru every program settings to switch to manual sync, switching to 2G network (EDGE in my area), turning off WiFi/Data/GPS/Background data I've got a busy day full of meetings at work (didn't touch the phone apart from 2 incoming calls and a few notes) and only 10% decrease of battery for 24h (100%->90%) which is amazing by itself. But I wanted to optimize more.
I have heard that other things like Custom ROM, freezing of system applications, task killers, Under Volting (UV), Under Clocking (UV) would help me too, but I was about to discover which one really helps in real use.
One lazy Sunday like today while being a bit sick allowed me to conclude an experiment of how far did I get in optimizing the power usage for a "baseline configuration" - WiFi/Data/GPS/Background data off, 2G network, all possible sync to manual - and the results are astonishing.
2. Approach
The approach to optimize the battery life is only one - PUT IT TO SLEEP AND DON'T LET IT AWAKE.
Having read a ton of articles on xda-developers.com and other places I have concluded that the strategy for optimizing includes these major steps:
2.1. Get a clean baseline Custom ROM where much of the "bloatware" is removed, so you have less to optimize - optional step but it helps to do it
This probably helps although not necessary. I'm not sure if the stock ROM will allow you to put custom kernels which will be needed in the next steps to optimize further.
But in any case you need to be at least "rooted" to apply some of the advice - either via a rooted kernel like CF-Root [8], or via an exploit like the DooMLoRD'a zergRush exploit [7].
2.2. Optimize the screen-on time
This is up to how frequently you use the phone
What you can optimize is to set a default "conservative" CPU Governor profile from 200MHZ to 1200MHz for regular usage - nothing really special, it's only slower on jumping to high frequencies.
If you have a kernel like RedPill Kernel [9] you can add an additional In-Call profile with "conservative" CPU Governor from 100MHZ to 800MHz - while you talk and phone to the ear it idles at 100MHz, but if you start a let's say Notes taking application, or go to turn on Bluetooth it will be snappy enough. Same holds true for listening to music or listening to books - but it's up to your imagination how to set a 100MHz profile in this case (maybe via Tasker). Have in mind that the 100MHz setting may be unstable on some phones because it's not standard, but mine is absolutely fine with that setting.
For setting the CPU profiles software like Voltage Control [5] (paid version for many profiles) is used.
CPU Governor "conservative" is crucial so you don't instantly jump to the highest frequency as it happens with the default "ondemand" governor (or its clones).
You can choose an I/O Scheduler appropriate for your CPU Governor based on the MagicConfig article in my references [14].
People also say that the following helps and I use it: turn off button LED lights, darker wallpapers, auto-rotation disabled, auto brightness on (I have to see the screen after all).
If you use kernel like RedPill Kernel [9] the button LED lights are undervolted by default, so you can leave them "on for 1.5s" for example.
If you have a Custom ROM like CheckROM Revolution HD V6 [10] with JKay Deluxe Settings you can set a Dark or Darker auto brightness profile - also usable to some extent.
One article in my references [12] also gives the power drain in milliwatts (mW) for each hardware device - go read it and you will understand how much the Amoled Display (Average - 370mW), LED lamp next to camera (1.3W), Camera (700mW), Bluetooth and GPS (110 to 180mW) etc. hardware actually consumes.
2.3. Optimize the screen-off time
2.3.1. Analyze Wakelocks
Wakelocks indicate when some application prevents the phone from going to sleep for some time. It does not necessarily mean that it does something significant at that time, and may be only a bad application design. Some applications really like to hold wakelocks periodically during the day for no reason, even if set to Manual sync etc. Examples of such applications are Facebook, 3G Watchdog... You milleage may vary but you can be sure that this hurts your battery life a lot. Any such application can be frozen with Titanium Backup or uninstalled if it's not a system application. Both count and total duration of the wakelocks are important.
BetterBatteryStats [1] has a screen to debug Partial Wakelocks and Kernel Wakelocks. You can also obtain the raw information via the console command "cat /proc/wakelocks".
2.3.2. Analyze Alarms
Alarms are a way to start jobs in the system at a predefined time. Many applications set alarms to get awaken and check/poll something before sleeping again. You should note that firing an Alarm is not necessarily connected to having a Wakelock - you can see many alarms firing but very few wakelocks. The problem is that too many applications set too many alarms for no reason. These activities also hurt your battery life a lot. Examples of such applications are Google Maps (at least for me)... As long as I have another GPS application with offline maps, I've simply frozen Maps with Titanium Backup. Another example was let's say Social Hub, but as long it was firing once per 24h, I didn't bother to touch it.
BetterBatteryStats [1] has a screen to debug Alarms which requires Root access. You can also obtain the raw information via the console command "dumpsys alarm".
2.3.3. Analyze Network Connections
If you get lost in the Wakelocks and Alarms, you can help yourself by checking what connections are kept alive while Internet is connected. OS Monitor [3] has a Connections screen which is equivalent to "netstat". This is also a good indicator what may be drawing unnecessary battery and respectively freeze/uninstall. In my case I can point that I've discovered that K-9 Mail had a bug with IMAP accounts - if I connect to an IMAP account set to manual/poll sync once, it keeps a connection open forever, until you restart or kill the process, but for POP3 account there is no problem... Being aware of such things really help with the battery life.
2.4. Optimize deep idle and sleep time
This is the most important goal in this article - how to get into deep idle/sleep and stay there, because this is the only real way to save energy on such a powerful device
CPU Spy [2] can show you how much time you spend in deep idle/sleep - with my baseline testing I've managed to get 99% deep idle/sleep which is amazing - only if the manufacturers gave us the phones in this state and we can build on that...! But it's the other way round.
Unfortunately the sleep mode on the stock kernel and the CF-Root kernel is not too deep. Entropy512 in my references [15] describes the following modes of idle/sleep:
IDLE - clock is gated but power remains (does not eliminate any static power consumption)
AFTR - clock is gated, CPU core power removed, cache power remains - this eliminates a great deal of static power consumption - cannot be entered if second core is active
LPA - AFTR + removal of cache power - cannot be entered if second core is active
IDLE is entered if the CPU is expected to be free for 4 msec (40 msec stock)
AFTR is entered if the CPU is expected to be free for 10 msec (disabled stock)
LPA is entered if the CPU is expected to be free for 40 msec (40 msec stock)
This compares to suspend, aka deep sleep, which takes around 150 msec to enter and 650 msec to resume, and the CPU must be at 800 MHz (or at least have enough voltage to support 800 MHz operation) during this time. Entering suspend/resume is very costly in terms of power due to heavy interrupt load.
Unfortunately my knowledge ends here, but flashing a kernel like RedPill [9] with Power Saving features and patches enabled improved the deepness of the idle/sleep very significantly, let's say 2 fold compared to the stock kernel. Sleep is entered faster and with more savings.
2.5. Optimize the modem/baseband
If all the points above are done, you can consider some savings from trying to flash newer modem/baseband compatible with your Custom ROM for better power savings during Calls and Data transmission. I did not get deep into this yet, but it's rather a big Voodoo, because the contents of the various modems are not public and you can only read feedback like "works very good for me" and "totally awful", which is not very scientific. Initially you can try staying with your original modem or the one provided by the Custom ROM, and optimize the previous points.
2.6. Optimize other stuff
2.6.1. Under Volting - will probably help, but for every frequency you need to choose voltages that are not too low to keep the phone stable. You can try the UV profile from the MagicConfig article from my references [14].
2.6.2. Under Clocking - I consider trying to use 100MHz useful for some scenarios, but only as an additional profile. After all the phone is very powerful and snappy to cripple it with 100MHz-1000MHz profile as default.
2.6.3. Automatic Task Killers - absolutely worthless peaces of software [16]. Android OS is good at power saving. It is very power saving conscious actually, of course combined with capable to sleep hardware. The only reason to kill a process is if it locked on holding some resource/connection forever, and OS Monitor [3] can kill it.
2.6.4. Battery charging - charge the battery as frequently as you want, but be sure to not keep it constantly on high charge (90-100%) [18], as long as this is not a good state for storage. Making bigger cycles helps to maintain better battery life. Some sources say cycling from 0% to 100% is not optimal [17], but from my experience through the years this way also works good for battery longevity, and maintaining small loss of capacity. I can give an example of losing up to 10% of battery capacity per year compared to design capacity with this method. You can view such statistics in Power Management tools in Lenovo ThinkPads etc.
Note that the battery indicator has some tweaks around 100% so consider the following:
- When charging for me it hops from 98% straight to 100%. If you disconnect now, it drops to 98% again, and this is what other people complain from too. Just wait some more time and it will charge to real 100% to have more battery life.
- The indicator stays at 100% longer than at any other value. So when testing, always test from the same baseline, e.g. always charge to 100% before comparing results.
3. Baseline configuration and results
CheckROM Revolution HD V6 PDA XWLA4 (Android 2.3.6) + modem XXKI4 (was XWKL1 but changed for no reason) + kernel RedPill 1.3.
WiFi/Data/GPS/Background data/Auto-rotation/Button LED lights - OFF
Any type of Sync or Polling - OFF/MANUAL, using local Contacts and local Calendar
Widgets - AccuWeather.com on MANUAL and Today view from Calendar.
Network: 2G (EDGE in my area)
Background and lock screen: Dark wallpapers
CPU default profile: conservative 200MHz-1200MHz
CPU in-call profile: conservative 100MHz-800Mhz
Because I don't want to wait a full day for the statistics, I'll post now for 8 and 12 hours, and tomorrow add for 24 hours.
(See the attached images, because I'm not sure how to embed them in the text)
4. References
[1] BetterBatteryStats XDA Edition - http://forum.xda-developers.com/showthread.php?t=1179809
[2] CPU Spy - https://market.android.com/details?id=com.bvalosek.cpuspy
[3] OS Monitor - https://market.android.com/details?id=com.eolwral.osmonitor
[4] Titanium Backup (paid version) - http://matrixrewriter.com/android/
[5] Voltage Control - https://market.android.com/details?id=com.darekxan.voltagecontrol
[6] Android Terminal Emulator by Jack Palevich - https://market.android.com/details?id=jackpal.androidterm
[7] DooMLoRD's Easy Rooting Toolkit [v4.0](zergRush Exploit) - http://forum.xda-developers.com/showthread.php?t=1321582
[8] CF-Root Kernel - http://forum.xda-developers.com/showthread.php?t=788108
[9] RedPillKernel_Rev1.3 - http://forum.xda-developers.com/showthread.php?t=1288850
[10] CheckROM Revolution HD V6 - http://forum.xda-developers.com/showthread.php?t=1312240, http://checkrom.com/
[11] Premium Dark Wallpapers - http://forum.xda-developers.com/showthread.php?t=1474798
[12] Kernel Governors, Modules, I/O Schedulers, CPU Tweaks - http://forum.xda-developers.com/showthread.php?t=1369817
[13] Getting the Most out of the Battery on your Android device - http://softbanksucks.blogspot.com/2011/10/getting-most-out-of-your-battery-on.html
[14] MagicConfig for UV and CPU Governor + I/O Scheduler combinations - http://forum.xda-developers.com/showthread.php?t=1466017
[15] Entropy512 explained CPU idle states - http://forum.xda-developers.com/showpost.php?p=23252902&postcount=17
[16] Android Task Killers Explained - http://lifehacker.com/5650894/andro...ed-what-they-do-and-why-you-shouldnt-use-them
[17] Li-Ion Battery Charge Cycles, Voltages and Storage analysis - http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries
[18] IBM/Lenovo recommendations on Li-Ion battery treatment - http://forum.xda-developers.com/showpost.php?p=23258191&postcount=19
5. Disclaimer
Paid apps are mentioned here for clarity. You can of course find an alternative if such exists. Free (no ads) versions of software were listed where possible.
Needless to say that all advice here must be applied only under your own responsibility.
Results at 25h usage: The battery indicator has dropped down to 94%.
However it's a bit hard to predict how much is it going to last this way as long as after initially staying at the value "100%" the indicator decreases a bit faster.
See attached screenshots.
Thanks for the detailed post but i still don't understand why people insist on having a smart phone and then turning off any good feature in it to get 2 days of work out of it.
Agent_Adodas said:
Thanks for the detailed post but i still don't understand why people insist on having a smart phone and then turning off any good feature in it to get 2 days of work out of it.
Click to expand...
Click to collapse
That depends if you dont want xxxx app running every day why run it and why let it connect on a daily basis . Its a Smartphone not a dumbphone that controls the user .Nothing in the Smartphone design says hey guy you are really uncool if you don't have everything turned on .
I turn on what i want when i want but then again i am not sad enough to live my life on facebook .
jje
there's nothing wrong with killing background tasks that eats your battery, but to me it looks funny to turn off WIFI, 3G, Sync or polling.
anyway, that's what i think, other people may think different and will prefer to save on battery life.
Agent_Adodas said:
there's nothing wrong with killing background tasks that eats your battery
Click to expand...
Click to collapse
:facepalm:
http://lifehacker.com/5650894/andro...ed-what-they-do-and-why-you-shouldnt-use-them
Unless you love using terribly coded apps.
This is a Baseline - my initial starting position. Yeah I don't feel cool for running tons of unneeded stuff Actually after 15 hours of uptime I feel pretty bad and a slave of the charger.
I hope to tell more people in a single post what can be optimized, stripping off any superstition, voodoo and some pointless beliefs circulating in the web
I don't say "do like me", but instead what a great hardware SGS2 + core Android software actually seems to be
Please also note I didn't limit myself to 1000MHz, do not recommend reducing voltages etc... the struggle is to put the software in control, not to cripple the experience.
Additionally, I have WiFi at work, at home, at the gym, and between them I'm driving... for that reason I don't need unlimited data. And for new mails I actually get SMS and know when to fetch the mail. If it's important I can turn on the data as well. On business trips abroad there is no unlimited data anyway too - only WiFi at the office and at the hotel. So there are different scenarios...
Serious Observations Bro!
Must say, very clear,simple and awesome way to put together things...will try this out and post again!
Thanks a ton bro! Love the efforts and for helping us out!
Great tips mate... I knew many of them before but i will not use them so much.. I have a feeling that it criples my phone... Limiting my usage of the phone... Instead i have a custom rom,custom kernel ,an extra standard battery,car charger...
I even tryed once to apply most of your tips but they gave me a couple of hours extra batt life. My problem is network signal coverage-edge is fine(but who can surf on egde ?!? ) ,3g and hspda signal is not so good (i travel a lot by car all over my country) and the phone keeps trying to get better network signal and uses more battery...
So most of your tips work if u want to criple your phone and if ur network has great coverage...
Sent from my GT-I9100 using XDA
Using a slow scaling cpu governor defeats the purpose of battery savings. You want something that will scale up fast and scale down just as fast. That way the task gets completed quicker and the cpu can go back to an idle state faster.
Slower governors take longer to complete a task and that uses more battery.
I rather OnDemand complete something in 2 seconds jumping immediately to 1.2Ghz than Conservative in 4 seconds scaling it's way up each step and then scaling back down slowly.
Sent from my GT-I9100 using Tapatalk
Elisha said:
Using a slow scaling cpu governor defeats the purpose of battery savings. You want something that will scale up fast and scale down just as fast. That way the task gets completed quicker and the cpu can go back to an idle state faster.
Slower governors take longer to complete a task and that uses more battery.
I rather OnDemand complete something in 2 seconds jumping immediately to 1.2Ghz than Conservative in 4 seconds scaling it's way up each step and then scaling back down slowly.
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
Not true if I'm typing notes. Ondemand will struggle to take me on high frequency, while I'm browsing the texts... Do you need high frequency when reading forums?
Actually I have no problem to play Asphalt 6 and Angry Birds on 1200MHz with this setup
It takes you more cpu cycles to get Asphalt or Angry Birds fully loaded with Conservative than it would with OnDemand.
And you have to remember we have dual-core cpus. It's to your benefit to get both cores scaled up faster to finish the task.
You don't notice this as much because the difference is probably in the milliseconds. But Conservative is more of a power hog than OnDemand.
Sent from my GT-I9100 using Tapatalk
Wow, thats massive and informative! Too good job Sir! Hats Off!
Elisha said:
It takes you more cpu cycles to get Asphalt or Angry Birds fully loaded with Conservative than it would with OnDemand.
And you have to remember we have dual-core cpus. It's to your benefit to get both cores scaled up faster to finish the task.
You don't notice this as much because the difference is probably in the milliseconds. But Conservative is more of a power hog than OnDemand.
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
Agree. All that advice is mostly targeted to battery conscious people, this is not a gaming setup There is no one best configuration for all.
It's also not about what exact values to choose, but what approach to take for battery life improvement.
Can't wait to run a UV kernel once the sources drop. That there helps quite a bit to conserve battery.
Sent from my GT-I9100 using Tapatalk
I know pretty much all of this already but it's a useful guide for noobs for sure.
I don't bother anymore with SetCPU or any of that anymore and to be honest it's had little or no impact on battery life which is still excellent.
gingingingin said:
0: IDLE - CPU not clocked
1: AFTR - something not totally clear to me, but an alternative way to IDLE the CPU - ARM Off Top Running with L2 cache keeping its state
2: IDLE+LPA - IDLE + DEEP IDLE - also some parts of hardware are powered down
3: AFTR+LPA - AFTR + DEEP IDLE
Click to expand...
Click to collapse
These are not deep sleep states. Deep sleep is also known as "suspend" - where almost the entire system is shut down.
These are CPU idle states, which allow the core to save power even when the system is "running". They take significantly less time and energy to enter, but save less power. Also, there are only three of them - IDLE, LPA, AFTR. See arch/arm/mach-s5pv310/cpuidle.c in the kernel source for more details.
As an example, with kernels that have the cpuidle backport from the Tab 7 Plus:
IDLE is entered if the CPU is expected to be free for 4 msec (40 msec stock)
AFTR is entered if the CPU is expected to be free for 10 msec (disabled stock)
LPA is entered if the CPU is expected to be free for 40 msec (40 msec stock)
There are some rules that can cause lower states to be entered even if the cpuidle governor chooses LPA or AFTR. (cpuidle governor has nothing to do with cpufreq governor).
Your descriptions of the states are pretty close to what I understand them to be:
IDLE - clock is gated but power remains (does not eliminate any static power consumption)
AFTR - clock is gated, CPU core power removed, cache power remains - this eliminates a great deal of static power consumption - cannot be entered if second core is active
LPA - AFTR + removal of cache power - cannot be entered if second core is active
The above are why 100 MHz is pointless on our device, and in my experience, actually can increase power usage. The achievable voltage difference between 100 MHz and 200 MHz is insignificant for most peope, and if the voltages for two frequencies are the same, it's better to run at the higher frequency and drop into AFTR/LPA to shut off core power more often. The PDF linked from Ezekeel's post at http://forum.xda-developers.com/showthread.php?p=21785924#post21785924 is a useful read on this topic, especially section 6. While it's fairly old, most of the concepts remain valid. For this reason, 500 MHz also doesn't consume much more power than 200 for a given fixed amount of load due to having the same voltage stock as 200 (however, it does increase some internal clocks I believe, leading to slightly increased power) - so when the screen is on I have it set to 500 MHz minimum.
This compares to suspend, aka deep sleep, which takes around 150 msec to enter and 650 msec to resume, and the CPU must be at 800 MHz (or at least have enough voltage to support 800 MHz operation) during this time. Entering suspend/resume is very costly in terms of power due to heavy interrupt load, which is involved in 90% of complaints about high "Android OS" battery usage on Gingerbread. However I believe from some of the testing I've run that improved cpuidle greatly reduces this penalty.
With the improved cpuidle patch, even when I use the Wake Lock app to hold a permanent wakelock for testing purposes, my standby drain is only 1.5%/hour or so. When not holding a wakelock, 0.5%/hour on wifi is easily achievable. It gets much worse at my desk at work, where the signal is weak and the cell radio eats huge amounts of power - there it's around 1%/hour.
Edit: As to task killers - all of the people saying "task killers are worthless" talk about memory management only. The fact is, unfortunately, that there are some crappy apps out there that use too much CPU or hold insanely long wakelocks that you just have to use occasionally. Facebook is still the #1 example here - Facebook is a major battery hog, therefore when you're done with it, you must kill it with fire. However, NEVER use an autokiller and never use it for memory management!
Regarding battery charging, I wonder have you read this article before : batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries (please add http)
The fact seems to be completely opposite from your theory in 2.6.4.
Sent from my GT-I9100 using xda premium
Not sure, the battery article is a bit doubtful. For me at least the testing sequence is strange:
1. Charging current of 1C is a bit high, to say the least. Quick chargers have never been optimal for any type of batteries.
2. Discharge current of 1C is huge and far from being realistic for a mobile phone.
Also if we interpret the results it becomes that at 10% DoD we get 4700 small cycles, which is close to 100% DoD with 500 big cycles... Actually the results are in favor of the 100% DoD.
Of course my interpretation can be wrong, but so far I have got the opposite idea of that.
For practical purposes I can give an example of a Nokia Li-Ion battery thoroughly fully discharged and for 2 years it retained at least 80% capacity. I'd estimate the number of cycles to be 120-150.
On my current laptop the ThinkPad Panasonic battery was always almost completely discharged via settings, attaching screenshots. At 328 cycles and 3.5 years since first use it retains 88% of the design capacity. This is quite a good achievement for a tortured battery I'd say
Note: See the advice/sentence written in the top box by my good old IBM manufacturer (now Lenovo). "... battery deterioration may occur faster if the battery is constantly charged at 100%. Lowering the charge thresholds ... will help increase its lifespan". These guys know their job... I think their sentence almost surely relates to storage though. Storage at 50% is much better than storage at 100% charge. There is room for interpretation again.
Note: This is my second battery on this laptop, the first one Sanyo was a bit worse with the same treatment (maybe older technology) and after 2 years its electronics suddenly failed, while at around 150 cycles.
Entropy512 said:
The above are why 100 MHz is pointless on our device, and in my experience, actually can increase power usage. The achievable voltage difference between 100 MHz and 200 MHz is insignificant for most peope, and if the voltages for two frequencies are the same, it's better to run at the higher frequency and drop into AFTR/LPA to shut off core power more often.
Click to expand...
Click to collapse
First of all, thanks for the detailed explanation of the states.
I remember from the school/uni that the power used is proportional to the frequency. If we have static consumption in the chip it will not be affected by changing the frequency, but the dynamic part of the consumption is essentially doubled when running on 200MHz compared to 100MHz. I don't know the ratio dynamic_consumption:static_consumption for my chip, but it may be around 1:1.
The formulas were something like that: http://forums.anandtech.com/showthread.php?t=119229

Undervolting

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.

Categories

Resources