LG H440N 4G LTE battery & performance tweaks - LG Spirit Guides, News, & Discussion

LG H440N 4G LTE kernel performance tweaks
FINAL VERSION
any other tweaks I find useful will be posted in the "init.d" section
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
​Changelog:
27. December 2015 - added FINAL values. Everyone should use these. "They are nice!" - says Borat.
28. December 2015 - added a changelog. Heh!
29. December 2015 - added a super secret, secret testing zone. I dare you to find it. Note that it's well hidden!
30. December 2015 - new tcp tweaks in init.d section, screenshot how it should look like, Recently tweaks.
31. December 2015 - added a link to a web site with an excellent article on battery care. Added Kernel Adiutor tips by jonathansmith.
1. January 2016 - Added 7+ hours SOT settings in the testing zone. Happy New Year!
3. January 2016 - Since I achieved what I aimed for, I am taking a break from this thread. It will stay open, so feel free to keep on discussing.
18. January 2016 - Testing settings became default settings, with a few changes.
29. January 2016 - Low Memory Killer & swappiness value updated.
BATTERY CARE - a must read for everyone!
Disclaimer:
I am not to be held responsible if anything goes wrong. Simple as that. You do these mods of your own free will.
Warning:
Please, do not report issues or complain about lousy battery times/performance, if you've used any of those pre-made scripts that promise godly battery or performance - they often cause more trouble than they're worth, and are mostly snake oil. And often, you cannot easily undo those changes. If you run a lot of background apps ( for example, five different messengers that cause wakelocks or increased battery usage ), then this guide is not for you. Do not report issues if you've modded your phone with any audio scripts ( like v4a ), xposed, or anything like that! Do not report if you did any permanent system mods, period! These kernel are for CLEAN & STOCK phones, that are rooted ONLY. To summarize, I will not bother replying if you did anything to your phone besides the tweaks I recommend.
Nothing done here is permanent. Everything can be returned to stock in a matter of minutes, if you prefer so, just by uninstalling Kernel Adiutor, unfreezing the bloatware and power cycling the phone.
And hugs to all that pushed the "Thanks!" button. Hell, hugs for everyone!!!
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●
BEFORE WE START...
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●​
Must be done before modifying CPU values:
Open your hidden system menu by dialing 277634#*#, go down to Power, find items "High temperature property" and "Thermal mitigation daemon", and set them like this:
High Temp Prop OFF
Disabled
Thermal Mitigation
Disabled
After that, turn phone off, wait 15-20 seconds and turn back on.. The screen will not dim in hot conditions anymore. Benchmarks are higher, games run smoother. And we can tweak our CPUs.
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●
KERNEL ADIUTOR SETTINGS
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●​
Apply on boot time is to be decided by the user. Although Kernel Adiutor waits for boot complete, I noticed ( on few occasions ) that it takes more time to apply the settings properly. Why? Who knows. Depends on the number of apps you have running on boot, version of the firmware or how lazy it is on boot... Safest setting is 40 seconds, but 20 should cause no issues and is preferred. 10 can be a problem.
CPU:
CPU Maximum Frequency: 1209
CPU Minimum Frequency: 800
CPU Governor: interactive
*note: Minimum frequency is set to default 800, since Snapdragon 410 draws the same voltage on 200, 400, 533 and 800. That's the reason I set the frequency back to 800 idle. No need to go lower for absolutely no gain in battery life or performance.
CPU Governor Tunables subsection:
above_hispeed_delay: 20000 1094400:40000
go_hispeed_load: 80
hispeed_freq: 998400
min_sample_time: 40000
timer_slack: -1
DEFAULT ( 7+h SOT ) - target_loads: 1 800000:75 998400:80 1094400:85
PERFORMANCE ( smoother, few hours less SOT ) - target_loads: 1 800000:75 998400:80 1094400:80 1152000:85
timer_rate: 20000
max_freq_hysteresis: 40000
*note: Reason for system lags is found in the cheaper and slower memory LG has used for H440N ( my guess is, to cut cost ). You can test that yourself by running various I/O benchmark tools and noting speeds of random and sequential reads/writes. I did not manage to make that better in any way by tweaking the I/O schedulers, be it deadline, cfq or row - even testing some examples from Franco's Dev Team. Seems that it's best to leave it on cfq and cut overhead with the flashtweaks init.d script found later mentioned in this post.
Frequency changes happen VERY fast. So fast that CPU widgets or passive frequency readers have a lousy time keeping up. Only values you can trust are found in Kernel Adiutor's Frequency Table.
Those values found above are the best possible values for H440N's CPU for performance & battery saving, and I stand by them. If anyone else cares to try and do some tweaking to improve on those, by all means, please do so. If in the future I decide to add new CPU values, they will be strictly performance based, hence no battery saving.
Reason for the CPU frequency sticking to 1209600 is caused by the LG Home launcher. It contains a system call where, if you open up your apps drawer, it immediately ramps up the frequency to the max for almost 8 seconds or until you close the app drawer! That sucks, and is a lazy way for LG to provide smooth app drawer opening/swiping/closing! Bad LG, bad!!!
Two ways to solve that:
1. Spend less time listing through your apps drawer, since the frequency drops as soon as you stop swiping through it, or...
2. Freeze LG Home and use another launcher ( like Nova or Apex ), if you don't mind losing Double Tap to Wake, or work around that problem with launchers that support double tap gesture and link that gesture with a screen off app like this. Do not freeze any LG Home system apps, besides Easy Home. No need. System will automatically kill the unneeded launcher. Just follow my frozen bloatware list. Nothing more, nothing less.
Low Memory Killer values ( top to bottom ):
48
60
72
84
96
120
Virtual Memory:
vfs cache pressure: 100
swappiness: 80
Build prop Editor
dalvik.vm.heapsize: 174m
dalvik.vm.heapminfree: 512k
dalvik.vm.heapstartsize: 8m
dalvik.vm.heapgrowthlimit: 128m
dalvik.vm.heaptargetutilization: 0.75
dalvik.vm.heapmaxfree: 8m
*note: Dalvik tweaks are based upon Intel's recommended Dalvik tweaks for Lollipop phones with 1 GB RAM and xhdpi displays.
Init.d
1. Turn on "Emulate Init.d" and click that big "+" to create a new script.
2. Name the new script: flashtweaks
Contents of the "flashtweaks" script are:
Code:
#!/system/bin/sh
echo 0 > /sys/block/mmcblk0/queue/nomerges;
echo 2 > /sys/block/mmcblk0/queue/rq_affinity;
echo 512 > /sys/block/mmcblk0/queue/nr_requests;
echo 0 > /sys/block/mmcblk0/queue/iostats;
echo 0 > /sys/block/mmcblk0/queue/add_random;
echo 0 > /sys/block/mmcblk1/queue/nomerges;
echo 2 > /sys/block/mmcblk1/queue/rq_affinity;
echo 512 > /sys/block/mmcblk1/queue/nr_requests;
echo 0 > /sys/block/mmcblk1/queue/iostats;
echo 0 > /sys/block/mmcblk1/queue/add_random;
2. Name the new script: tcptweaks
Contents of the "tcptweaks" script are:
Code:
#!/system/bin/sh
#more reasonable tcp tweaks
echo 1 > /proc/sys/net/ipv4/tcp_low_latency;
echo 0 > /proc/sys/net/ipv4/tcp_timestamps;
echo 900 > /proc/sys/net/ipv4/tcp_keepalive_time;
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes;
echo 156 > /proc/sys/net/ipv4/tcp_keepalive_intvl;
Example of properly added scripts. I just named them differently:
Ignore the "99SuperSUDaemon" script unless you know what it is. It's not needed for our tweaks, and if you don't have it, it's perfectly fine.
Here are some screenshots on clearing / checking Kernel Adiutor's Frequency Table, by our fellow XDA member jonathansmith:
How to clear timers?
Check correct frequency usage.
Now, since you've finished with Kernel Adiutor, power cycle the phone. You're almost done. All that's left are:
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●
OTHER SETTINGS
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●​
In Developer options, set animation scale values to OFF.
In Settings / Display / Brightness enable Night Brightness. Who needs anything over 0% brightness from midnight to six in the morning?
Visit Play Store and install these apps:
Recently by Chainfire
Trimmer (fstrim)
Recently! settings ( preferred ):
Age limit: No limit
Entry limit: 12
Apply on boot: Yes
Freeload: Checked ( yeah, we're cheapskates )
EVERYTHING ELSE DISABLED / UNCHECKED.
Recently! settings ( much faster version ):
Age limit: Running apps only
Entry limit: Running apps only
Apply on boot: Yes
Freeload: Checked ( yeah, we're cheapskates )
EVERYTHING ELSE DISABLED / UNCHECKED.
Do a "Clear all" in recent apps list after a reboot. It will make things faster. Believe me.
As for Trimmer (fstrim), run that every week or so, on "/data", "/cache" and "/system". No need to run it daily.
Apps frozen with Titanium Backup ( freeze bloatware, do not delete it - you'll thank me later ):
Chrome
Drive
E-mail
EasyHome
Gmail ( I am using Aqua Mail. )
Google Play Books
Google Play Games
Google Play Movies
Google Play Music
Google Play Newsstand
Google Search
Google+
Hangouts
HTML viewer ( do not disable if using stock browser or Chrome )
Internet ( I am using this version of Opera. It's the best one.
LG Keyboard ( disable only if already using another keyboard. I am using Smart Keyboard. )
LG Keyboard Black Theme ( disable only if already using another keyboard. I am using Smart Keyboard. )
LG MLT ( disable LG MLT in the hidden service menu before freezing it! Menu code is 277634#*# )
Live Wallpaper
Music ( both widget and app - I am using PlayerPro. )
Trusted Face
Weather
Weather Theme
WeatherPlatform
Do not touch anything else! Don't say I did not warn you.
If you prefer blocking ads on web sites, like I do... then download AdAway from XDA forum, and enjoy ad-free surfing.
That's it. Have fun, and enjoy your buttery smooth phone. One of this year's best-buy smartphones. Too bad it doesn't get the attention it deserves. Really, an unsung hero if there ever was one.
Although there are a lot of other CPU tweaking values throughout the thread, these values are the standard ones you should use. Other ones are experiments, or just plain testing values.
H440N is compatible with DriveDroid - in case you want to boot an operating system or a Linux distro off of it.
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●
SUPER SECRET, SECRET TESTING ZONE
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬●
by WellHidden™​
THESE SETTINGS BECAME THE DEFAULT SETINGS. SEE ABOVE.
With the latest test settings I achieved 7+ hours SOT. And yes, it can be done! You got the proof below.
Everything else besides these TESTING values below stays the same as in FINAL values ( dalvik, init.d, etc. ).
CPU:
CPU Maximum Frequency: 1209
CPU Minimum Frequency: 400
CPU Governor: interactive
CPU Governor Tunables subsection:
above_hispeed_delay: 20000 1094400:40000 1152000:20000
go_hispeed_load: 82
hispeed_freq: 998400
min_sample_time: 40000
timer_slack: -1
target_loads: 72 998400:82 1094400:85 1152000:86 1209600:90
timer_rate: 20000
max_freq_hysteresis: 40000
Virtual Memory:
Swappiness: 60 ( I recommend 100, but go back to 60 if you feel the memory gain is not worth a slight performance drop. )
Vellamo 3.2 scores:

My phone was originally set at frequency max 1200 and min 1200. After all the changes you suggest, do you set the min cpu frequency at 200 or leave it on 1200?

polfrank said:
My phone was originally set at frequency max 1200 and min 1200. After all the changes you suggest, do you set the min cpu frequency at 200 or leave it on 1200?
Click to expand...
Click to collapse
Min 200 Max 1200
Interactive / Noop
Other values as suggested.
But, damn. Those original settings must've drained the battery like hell... Are people at LG crazy?
EDIT: Sometimes, SetCPU will show the lowest frequency as 1200, but don't worry. Set it to 200, and verify it's at 200 in Times in state on the last SetCPU tab. It seems to be a bug in the app. That's why I used Kernel Adiutor.

ondemand + noop + lmk set to agressive and the phone flies like never before! looks like constant 60 fps. Thanks op!

Always glad to help out. Like I mentioned before, this phone has good hardware and is capable of stellar performance. Only problem is LG did not pay much attention on the tweaking side of things.
It's easy for them to tweak flagships
EDIT: Just found out about another gem! The app is called Recently by chainfire.
Installed, tried and it's marvelous even on default settings. I encourage everyone to try it. It's what Recent cards were supposed to be, in my opinion.

So I installed Busybox and Kernel Adiutor, set CPU min frequency to 200 Mhz, cpu governor to interactive and and I/O scheduler to noop. I've set both to apply on boot. Is that everything I need to do?

Fobos531 said:
So I installed Busybox and Kernel Adiutor, set CPU min frequency to 200 Mhz, cpu governor to interactive and and I/O scheduler to noop. I've set both to apply on boot. Is that everything I need to do?
Click to expand...
Click to collapse
It is, if you don't mind the default Interactive values. Otherwise, go a bit lower to "CPU Governor Tunables". Click that and set values as mentioned in first post. Those give a much better battery life.
After that, my recommendation is to visit the Low Memory Killer section and set that to Aggressive and apply on boot.
I can say that, after a bit of tweaking, this phone rocks! Glad to have bought it. Still hoping for a unlocked bootloader and maybe a CM port

Can you please take a screenshot of your CPU Governor Tunables section? I'm not completely sure that I did it right.

No problem, my good man. Here they are:
http://imgur.com/yDbXHE3
http://imgur.com/3uDi04u

holy ..! this really does make a difference. is it ok if i set cpu to "performance" and dont mess anything else with it? i dont care about battery life that much. cuz it seems that with agressive setting for ram, and changing to "noop" made wonders for me performance wise

Performance governor forces 1200, so that's not desirable.
For the best performance with lowest idle, set it to Ondemand / Noop. You will lose a bit more battery with those, but the phone will fly.
Otherwise, set as I've set it. Tweaked interactive.

userspace,powerspace hotplug and performance is what i have in karnel auditor.. which one should i choose then? tyvm!
p.s. thanks again for these tips man

That's strange. Are you using the LG Spirit H440N or some other variation?
See here ( list of governors ):
http://imgur.com/hxZOoDz

ah right. that could be a reason.. i use 3g version, with mediatek cpu

* moved to first post *

Tomo123 said:
Performance governor forces 1200, so that's not desirable.
For the best performance with lowest idle, set it to Ondemand / Noop. You will lose a bit more battery with those, but the phone will fly.
Otherwise, set as I've set it. Tweaked interactive.
Click to expand...
Click to collapse
amazing speed and multitasking (with Recently), thank you for this

Can you help me with target loads? Is this ok?
Sent from my LG-H440n using Tapatalk

String seems to be written ok, but my guess is it will clash with go_hispeed_load value.
If go_hispeed_load has a value of 85, then your initial value in target loads can't be "1". It must be higher than 85.
We're using our hispeed frequency ( 400000 ) as idle. It often drops to 200, so I see no reason of adding 200 to target loads.
Did you check out my post above?
Also, take a look at my KA frequency table:
http://imgur.com/BikoQk2

It seems that ive messed up something. Now my phone wont go deepsleep. This is the result over night.
Sent from my LG-H440n using Tapatalk

Can you make a screenshot of your target loads. Im having a hard time making it work. Performance is on point but i get a lot of battery drain.
Sent from my LG-H440n using Tapatalk

Related

[LIST] My "CPU tuner" recommandations

So many people on these forums ask about the best CPU tuner profiles to set on their Desire Z that I thought i'll make a thread here to refer to.
Note: I've been using and experimenting with CPU tuner for 5 months now, and i faced all the known issues before i came to these settings. Also, I have been listening to everyone's remarks. So i think it works the best. Now don't blame me if your phone turns into a fireball after you applied these settings (well, it's rare though...).
If you don't have it, you can download "cpu tuner" from the market. I'm using the 2.1.2 version.
Tips first:
You need a ROOTED phone to operate CPU tuner properly.
You'd better get a good kernel which allows a wide frequency range and the basic governors.
Read the help that's included with the program (Menu -> Help).
Unless you really need it, do not run the Check System Capabilities.
Not all phones can handle high CPU speed, just experiment. It's mostly a matter of luck.
The purpose of CPU tuner is to allow you to save battery life while getting the best of your phone when you need it. It allows you to change two important things in your phone, defined in "profiles":
Governor: the "brain" that decides when to lower or raise frequency, depending on what you do
Frequencies: the min/max frequencies the governor can choose between.
These profiles are applied depending on your battery status. Battery remaining life is the variable for "triggers", which fire the profile changes.
Usually, you want your phone to give you the best of its power, as long as possible, so i defined only two triggers: one for "Battery is fine, thanks" and one for "Battery is at agony, stop it now!" (below 20%).
Here we go:
Before you start, go to settings, and turn profiles off.
Virtual governors
In the virtual governors tab, we define the 3 ones we need:
VG: Screen Off: "interactive" governor
VG: Normal: "ondemand" governor, with threshold up at 95
VG: Powersave: "conservative" governor with thresholds up at 97 and down at 90
Profiles
Now, let's set 3 profiles for the different cases:
Screen off: Governor "VG: Screen Off", frequencies 691-806Mhz
Normal: Governor "VG: Normal", frequencies 806-1210Mhz
Powersave: Governor "VG: Powersave", frequencies 599-806Mhz
In all cases, let all services on "unchanged" unless you want some specific behavior.
Triggers
Ok, now that we have everything we need, let's say what to trigger, and when:
Let 2 triggers:
1.Battery Good
Level: 100
On Battery: Normal
Screen Locked: Screen off
On Power: Normal
(optional but advised) Call in progress: Normal
(optional) Battery hot: Powersave
2.Battery Low
Level: 20
On Battery: Powersave
Screen Locked: Screen off
On Power: Normal
(optional but advised) Call in progress: Normal (this is important for call stability)
(optional) Battery hot: Powersave
You're ready to go now! But we can check some options if you'd like to:
User interface:
Be sure not to enable the Calculate power usage.
Also, here you can remove the (annoying) notifications, just let the status bar icon.
Profiles and triggers
Remember this optional "Call in progress" option? Here you cna enable it.
Service Switches
It's a good idea to check the "Manual service change" box, not to be bothered when you manually turn some connection on and it goes because you run low on battery.
Buy me a beer
Honestly, you can buy him two ones...
And to thank me, just click on the "Thank" button on this forum
When you're done, turn profiles on again.
Tell me how you do with these settings!
hi. i have a desire z running virtuous 1.0.2 with advanced kernel 2.2.0.
i follow you settings and after 2 days of use i've got the screen wake up issue on incoming call.
there's something i missed?
Are you using the Call in progress settingon every trigger ?
yes, i've set both to the normal profile as in your guide.
now i've disabled the option in settings and hope that works...
Yeah, try without this setting.
If you keep having the issue, try to raise the min frequency of screenoff.
ok! now i've found a good config!
i've increased screen off min freq to 691 and enabled again the call in progress option.
if the call in progress option is disable, the phone locks during a call and the proximity sensor won't work anymore (for example if you wish to end a call).
i hope this will help some other users!
thank you for help and guide!
Please give again a feedback in some days, and then i'll add your findings in the 1st post.
Thanks
after 3 days of usage i can say that this is the right config.
no more wake up / in call locking / end call wake issues!
Alright and you're using interactive for screenoff, right? I'll edit my first post
You guys minimum frequencies look a bit too high, I have mine set to 245 minimum and it gets me much better battery life. I would also suggest using SetCpu (it's free for registered xda members). Just a thought though.
Edit: CPUTuner can also cause issues with any rom that isn't CM7; and also on CM7 under the right circumstances.
Sent from my HTC Vision using XDA App
@Ninj: yes, that's right!
@PaganAng3l: any suggestion is welcome! why don't you post an example of your settings?
Great little write up. I look forward to setting it up after work!
My profiles in SetCPU are pretty basic, but I get great preformance and around 30 hours of battery with moderate/heavy usage. Here are my profiles:
Temp > 42.0 C = 806 max / 245 min
Governor = Conservative Priority = 95
Charging = 1209 max / 245 min
Governor = On Demand Priority = 90
Battery < 25% = 806 max / 245 min
Governor = Powersave Priority = 85
Battery < 50% = 1017 max / 245 min
Governor = On Demand Priority = 80
Battery < 101% = 1209 max / 245 min
Governor = On Demand Priority = 75
That's it! I don't personally experience "wake lag" or a blank screen with incoming calls with these settings, but if you do simply bump up your minimum frequencies to above 300 mhz.
Sent from my HTC Vision using XDA App
PaganAng3l said:
[...]
Battery < 25% = 806 max / 245 min
Governor = Powersave Priority = 85
[...]
Click to expand...
Click to collapse
powersave? i can't find that governor...
i've set it on conservative.
i'm trying your settings but i still have the wake up issue.
now i'm going create a screen off profile.
if even this won't help, i'll try to increase the minimum freq to 300mhz.
however i have to say that this setup really help to increase battery life.
after 2 day of moderate usage i'm still at 66%!!
eFFeRaTuM said:
powersave? i can't find that governor...
i've set it on conservative.
i'm trying your settings but i still have the wake up issue.
now i'm going create a screen off profile.
if even this won't help, i'll try to increase the minimum freq to 300mhz.
however i have to say that this setup really help to increase battery life.
after 2 day of moderate usage i'm still at 66%!!
Click to expand...
Click to collapse
Your kernel may not support a "powersave" governor. I just flashed pershoot's kernel and I no longer have it. Try bringing all of your max frequencies to 1171mhz or lower. This helps solve the waking issue too.
Edit: having a screen off profile caused me no end of trouble. It may not be an issue for you but I thought I would share.
Sent from my shiny metal G2 w/ meXdroid V2
PaganAng3l said:
My profiles in SetCPU are pretty basic, but I get great preformance and around 30 hours of battery with moderate/heavy usage. Here are my profiles:
Temp > 42.0 C = 806 max / 245 min
Governor = Conservative Priority = 95
Charging = 1209 max / 245 min
Governor = On Demand Priority = 90
Battery < 25% = 806 max / 245 min
Governor = Powersave Priority = 85
Battery < 50% = 1017 max / 245 min
Governor = On Demand Priority = 80
Battery < 101% = 1209 max / 245 min
Governor = On Demand Priority = 75
That's it! I don't personally experience "wake lag" or a blank screen with incoming calls with these settings, but if you do simply bump up your minimum frequencies to above 300 mhz.
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
Going to give this a try. Hope I see an increase in battery life.
Why not just get the pyromod kernal and watch it do its magic?? but cool find
Sent from my HTC G2 PyroMod 2.0
Is it normal for CPU Tuner to give a "has been granted Superuser permission" message everytime the phone comes back from standby?
Sent from my T-Mobile G2 using XDA App
jankypr said:
Is it normal for CPU Tuner to give a "has been granted Superuser permission" message everytime the phone comes back from standby?
Sent from my T-Mobile G2 using XDA App
Click to expand...
Click to collapse
Yes that is normal. However since you're an xda member you can get the app SetCPU for free and I believe it's superior to cpu tuner. Just search the forum for "setcpu download" and it should turn up.
Sent from my shiny G2 w/ meXdroid V3

[How to]--->Simple Guide to Better Battery Life

Battery Life on a SmartPhone - The Riddle, The Enigma
I have been asked to port my original Battery Guide over to the SGS3 threads, so here it is in all it's glory.​
This thread was also recently featured on the XDA Portal. Thanks to Haroon Q. Raja for the write up.​
Attaining 20+ hours of battery life is not only possible it is totally attainable with most phone configurations. The secret to making this happen is, understanding what are the contributing factors are and knowing what to do first.
This guide will help. After reading this guide, you will be able to understand how to end power eating culprits and answer those same questions we see over and over in the threads...... that is .... solving the passive battery drain and get the 20 hours of battery life we all want and desire.
As we all know, all Samsung Galaxy S 3's and their Chipsets are not created equal. So if something works for one person and not the other, then is it a software, hardware or human error. Chances are it is a combination of all three. Hopefully this can slim those down a bit and answer some questions that you might have or have seen. I have tried to get almost everything I can think of and put it in one place.
You can click on the Post # below and it will take you directly to that post if you wanted to skip some things (although I don't know why you would want to do that)
Post 1: Tips and Tricks
Post 2: Roms/Kernels, OverClocking/Undervolting, Governors & I/O Schedulers
Post 3: Memory Management
Post 4: Apps (for your download pleasure)
Post 5: Proof
I will be using satirical stories and anecdotes to get my point across below. Not meant to offend or point fingers at anyone. I am just using real life references to get to the point. Also I am not much for fancy colors. I tried it at the top here but not so much further down. If there is something specific I want to call attention too, I will BOLD it and maybe RED it too.
This is not a GUIDE to get better battery life but rather a GUIDEline to get it. What is the difference, you say? A Guide is a step by step process that you must/should follow to get the outcome that the person who created it wanted you to get [A+B+C+D should = E]. A Guideline is more of a recommendation that allows some choice or flexibility in the understanding, execution or use [A +B-(C+D) can = E].
TopShelf10 has this to say about getting the most out of your battery life
the problem is, people want to believe that they can save battery without changing their usage habits. this simply is not possible. no rom or kernel will realistically do this for you. if you remove 1 brick from a bag full of 15 bricks, the bag will be lighter, but still very heavy. you need to download "spare parts" or "process monitor" from the market and start analyzing the way your apps are acting. also look into data syncs that are happening in the background. apps that stay open behind your back/what they are doing 9an app called "autostarts" can prevent apps from self-running under certain scenarios). animation speed. polling for notifications. gps. wifi scans. overclocking. cpu/ram usage. proper sleep. widgets. brightness. 2g/3g. data usage. call time. text volume. - THESE are the things that really affect your battery life.
bottom line is, if you truly want to save battery you are going to have to get your hands dirty...there simply isnt a one-click (or one-flash) solution.
Click to expand...
Click to collapse
Below is a list of fundamental things that can be done without rooting or custom ROM/Kernels. (Standard disclaimer applies: You use it, you set it and you are responsible)
1. Be Realistic -
Do you really think that you can get two whole days out of your battery? If you do, then you must have a very important pile of papers it is sitting on to not even pick up your phone for that long. These are phones. These are mini-computers. These are arcade games. And they want, dare I say, need to be played with, talked on or downloaded to. USE YOUR PHONE.
2. Syncing –
I know you are very important and you need to know what LeBron is doing right now, just in case you get a cup for a coffee and he might be in Starbucks at the same time and you get your picture taken with him and upload it to Facebook, Twitter or Google+. That is fine and I applaud you for it and will probably download the picture and Photoshop myself in your place. This is not the problem. Syncing your accounts is. That is what is causing battery drain. Do you really need to have your FB widget (see widgets section) streaming all day long? Does Kim K.’s endorsement of a potato chip really affect your everyday life? I doubt it. Kill them (not LeBron or Kim K. but rather the auto-syncing). Every time you “friend” someone their numbers, contact info gets sync’d to your phone. Also, there are settings in Facebook, Twitter and Google+ that you can upload pictures instantly. Don’t do that. Once you do, it is out in the Ether-World and just swallowed a bunch of battery doing it too.
Settings>Accounts and Sync>Auto-sync>uncheck it
3. Widgets –
They look cool. But widgets are nothing more than RAM and battery hungry monsters that you purposely put in your home screen. Think about it. What does a widget really do? All it really does is monitor an app that you have running. So not only is it running and taking up battery and RAM but the app that it is linked to is running in the background al’ a Facebook, Twitter, Google+, CNBC, MSNBC, BBC,… the list goes on and on because they want us to put THEM on our home page.
What a great marketing campaign the widget is.
“Hey look at me new home screen”
“Cool. Hey what widget is that?”
“Oh, it is X”
“Nice, I’ll have to download that tonight when I get home” and then and there they have you and your battery.
4. Apps –
You have to pay attention to your apps. I repeat. You have to pay attention to your apps. Especially if they run in the background. This can be anything from a harmless .99c game to a monster like Live Wallpaper. The battery drain threat is twofold here because the app is running in the background but it could also be using its anonymous data collection abilities and sending that back to the Mothership. Ever wonder why you have a 4/3G with up and down arrows in your status bar when your phone is just sitting there? This is because some app is transmitting data, whether you are using it or not. There are apps in the market that monitor these situations like Watchdog or kill the data link when the lock screen is enabled like Juice Defender (see Apps below) or you can adjust app permissions like LBE Privacy Guard. Data transfer is #2 on the What Kills My Battery list.
5. Display/ Wifi/ Airplane Mode/ Animations/ Location –
Display:
#1 when it comes to what is eating your battery. Always has been and always will be. Accept it and try to do something about it. This part is easy. Just lower the brightness. You can use Auto or set it as a brightness that is low but you are still able to see well enough to function. Live Wallpapers fall into this category. They are cool to look at but static ones take up less RAM and also less display because they are not running all the time in the background. These screens are bright at 100%, so tone it down. (see Apps below).
WIFI:
Another helpful tip is setting your WIFI sleep policy to Always. This can be done by going here Setting>Wireless>WIFI> Menu key>Advanced>WIFI Sleep Policy and set it to Always.
--->Then you can also do this Build.Prop edit as well (this is if you are Rooted, of course)
Allows your wifi to scan less, saving more battery:
wifi.supplicant_scan_interval=240 (I have mine set to 420)
Airplane Mode Toggle:
DocHoliday77 has this very helpful trick regarding Airplane Mode and how it effects your Data/Battery life.
I generally suggest toggling Airplane Mode on/off as a recommended step before running data speed tests, and to help with signal strength.
When you move from one area to another, generally your phone will automatically switch to another tower as the signal/connection to the current tower degrades. This is perfectly fine while travelling since you are not in a single location for very long. The problem comes into play once you have reached your destination. For many people, when they get home from work, for example, their phone will remain connected to the last tower they switched to on their drive home. However, there is very often a tower closer to their home that can provide better signal. The phone does not automatically switch to the better tower because it is still close enough to the current one to have adequate signal. By toggling Airplane Mode on/off, when the radio turns back on it will search for the strongest signal and will now connect to the closer, better tower!
Stronger signal will directly translate to a better battery. The better your signal, the less power is consumed for ALL radio operations (Including Cell Standby, Data, and Voice)! When the signal is weak, the radio requires more power to transmit to the receiver (the tower), which translates to higher battery use.
Toggle Airplane Mode on then off again to force the phone to connect to the best possible tower.
Animations: Set Settings > Display > Animations to .5 animations.
Location:
As pointed out by Arlanthir if your device is broadcasting your location, then you may need to rethink whether or not that is good for you and your battery. Generally, your location is based off GPS, Wifi or Mobile Networks. If these are on, then battery drain is occurring. Sometimes you need your location to work with Maps, Google Now, but most of the time, it is because of the unholy trinity, Facebook, Twitter and Google+. I mean, how do you think you "Check-In' at places right?
If you don't utilise these types of features on those three, then go into Settings>Location and untick them. Now there are also other apps like MLB At-Bat and the like that require location for blacked out games or services based on your location. I find that there is always a toast in those applications that notifies me and allows me to turn then on as needed. Then when I am done, I can turn them off.
These are 5 fundamental things that you can do to help reduce battery drain and get some more life out of your phone. Anyone can do these. All you have to do is watch your phone and use some common sense. “Why does my battery drain after only 6 hours? All I was doing was checking Facebook.” Do you really need to be on Facebook for that long of a time? I doubt it. How many services do you have running? How many tasks do you have running? (Android does a good job of shutting down tasks on its own, but if you are using a task killer, it takes more juice to start up an app than to turn it back on, so to say.) Think of it like an airplane. Takes more fuel to get up in the clouds, but once you are up there, it is pretty much coasting along with way less burn.
*******************
A special thanks to DocHoliday77 for convincing me to port this over and also for some of his helpful tips as well. You know who he is, so hit his thanks button to show your appreciation for all he does for this community.
ROMs are key things to think about when it comes to battery life. They can be fully established and working fine, can be RCs and still in development or they can be Alpha/Betas and completely experimental or just beginning. Choosing the best ROM or Kernel is going to depend on what YOU want out of your phone. Do you want a stable 4.0 ROM that has great battery life but not the customizability as MIUI or CM10 or AOKP? Because we have so many versions of 4.0.x ROMs that are official and almost all the sources have been attained, they have been Optimized to their fullest and some outstanding tweaks have really brought them to the forefront in daily drivers. Again, the choice is up to you.
Kernels go hand-in-hand with your ROM. Does the kernel support Overclocking or Undervolting. How much RAM and what tweaks are included in the kernel? Does THIS kernel work with THAT ROM? These are all spelled out for you in the OP of each kernel (and ROM) for you to find out. Read them because if you don’t, you’ll bork your phone and then your next post will be, “Help. I Bricked my phone”.
Overclocking/Undervolting –
If you don’t already know what Overclocking is, well it is pretty much self-explanatory. You can Overclock your CPU above the clock-speed that Samsung, T-Mobile governed it at. This can be done with apps like SetCPU (here and here and CPUtuner,…Generally have to be ROOTed to do these but if you are flashing ROMs and Kernels then you probably already are. UnderVolting is basically what it sounds like too. You are Undervolting your CPU to conserve battery.
This can be one of the best ways for a more advanced user to save battery. Overclocking is great to see those really cool Quadrant scores. Wow!!! But it also ramps up the battery drain, as well as temperature which can shorten your battery’s TOTAL life. If you want to Overclock to 1.8-2.1 just to see what you score on Quadrant or SmartBench, then do it for that time. Most ROMs/Kernels run stable and smooth at or about 1.2-1.6 with minimal effects on battery (as long as you do tweaks in above post). If you decide to Undervolt you can use Pimp My CPU, Voltage Control, SetCPU,... to do this but take care to step it down slowly until you find the right settings for you or you will see random reboots or phone freezes and those suck trying to diagnose.
***Please note that whether you Overclock or Undervolt, do NOT “Set on Boot” until you know that they are going to work. Otherwise if it doesn’t work and your phone randomly reboots, you will get into a boot cycle (not a bootloop) because you put them in “Set on Boot”. You must test before you should do this.***
Example scale of OC/UV setting from Ktoonsez' thread:
[KERNEL][TMO][AOSP/Touchwiz][JELLYBEAN & ICS][10/31/2012] KT747 - LJ7 - KTweaker
Stock___________________Undervolt startoff point___________________jerrygooch
Mhz - mV___________________Mhz - mV___________________________Mhz - mV
1890 - 1300___________________1890 - 1300____________________________1890 - 1200
1809 - 1275___________________1809 - 1250____________________________1809 - 1150
1728 - 1250___________________1728 - 1200____________________________1728 - 1100
1674 - 1200___________________1674 - 1175 ____________________________1674 - 1075
1512 - 1200___________________1512 - 1200 ____________________________1512 - 1075
1458 - 1187___________________1458 - 1187 ____________________________1458 - 1050
1404 - 1187___________________1404 - 1187 ____________________________1404 - 1050
1350 - 1175___________________1350 - 1175 ____________________________1350 - 1025
1296 - 1175___________________1296 - 1175 ____________________________1296 - 1025
1242 - 1150___________________1242 - 1150 ____________________________1242 - 1000
1188 - 1150___________________1188 - 1150 ____________________________1188 - 1000
1134 - 1125___________________1134 - 1125 ____________________________1134 - 975
1080 - 1125___________________1080 - 1125 ____________________________1080 - 975
1026 - 1075___________________1026 - 1075 ____________________________1026 - 925
972 - 1075____________________972 - 1075 _____________________________972 - 925
918 - 1050____________________918 - 1050 _____________________________918 - 900
864 - 1050____________________864 - 1050 _____________________________864 - 900
810 - 1025____________________810 - 1025 _____________________________810 - 875
756 - 1025____________________756 - 1025 _____________________________756 - 875
702 - 975_____________________702 - 925 ______________________________702 - 825
648 - 975_____________________648 - 925 ______________________________648 - 825
594 - 950_____________________594 - 850 ______________________________594 - 800
540 - 950_____________________540 - 850 ______________________________540 - 800
486 - 925_____________________486 - 850 ______________________________486 - 800
384 - 925_____________________384 - 825 ______________________________384 - 800
192 - 900_____________________192 - 825 ______________________________192 - 800
Governors and I/O Schedulers
Governors and I/O schedulers also have a huge impact on how your CPU regulates.
Here is about everything you need to know about them from Recognized Contributor droidphile from his thread:
[REF][TWEAKS] Kernel Governors, Modules, I/O Schedulers, CPU Tweaks, AIO App Configs .
If you haven't checked out his thread do yourself a favor and do it. A vast amount of information. Be sure to hit his THANKS too.
Governors
I) MANUAL:
These are the 19 governors we're talking about.
1) Ondemand
2) Ondemandx
3) Conservative
4) Interactive
5) Interactivex
6) Lulzactive
7) Lulzactiveq
8) Smartass
9) SmartassV2
10) Intellidemand
11) Lazy
12) Lagfree
13) Lionheart
14) LionheartX
15) Brazilianwax
16) SavagedZen
17) Userspacce
18) Powersave
19) Performance
NOTE: Info on Samsung's own multi-core aware governor - Pegasusq is here
1) Ondemand:
Default governor in almost all stock kernels. One main goal of the ondemand governor is to switch to max frequency as soon as there is a CPU activity detected to ensure the responsiveness of the system. (You can change this behavior using smooth scaling parameters, refer Siyah tweaks at the end of 3rd post.) Effectively, it uses the CPU busy time as the answer to "how critical is performance right now" question. So Ondemand jumps to maximum frequency when CPU is busy and decreases the frequency gradually when CPU is less loaded/apporaching idle. Even though many of us consider this a reliable governor, it falls short on battery saving and performance on default settings. One potential reason for ondemand governor being not very power efficient is that the governor decide the next target frequency by instant requirement during sampling interval. The instant requirement can response quickly to workload change, but it does not usually reflect workload real CPU usage requirement in a small longer time and it possibly causes frequently change between highest and lowest frequency.
2) Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
3) Conservative:
A slower Ondemand which scales up slowly to save battery. The conservative governor is based on the ondemand governor. It functions like the Ondemand governor by dynamically adjusting frequencies based on processor utilization. However, the conservative governor increases and decreases CPU speed more gradually. Simply put, this governor increases the frequency step by step on CPU load and jumps to lowest frequency on CPU idle. Conservative governor aims to dynamically adjust the CPU frequency to current utilization, without jumping to max frequency. The sampling_down_factor value acts as a negative multiplier of sampling_rate to reduce the frequency that the scheduler samples the CPU utilization. For example, if sampling_rate equal to 20,000 and sampling_down_factor is 2, the governor samples the CPU utilization every 40,000 microseconds.
4) Interactive:
Can be considered a faster ondemand. So more snappier, less battery. Interactive is designed for latency-sensitive, interactive workloads. Instead of sampling at every interval like ondemand, it determines how to scale up when CPU comes out of idle. The governor has the following advantages: 1) More consistent ramping, because existing governors do their CPU load sampling in a workqueue context, but interactive governor does this in a timer context, which gives more consistent CPU load sampling. 2) Higher priority for CPU frequency increase, thus giving the remaining tasks the CPU performance benefit, unlike existing governors which schedule ramp-up work to occur after your performance starved tasks have completed. Interactive It's an intelligent Ondemand because of stability optimizations. Why??
Sampling the CPU load every X ms (like Ondemand) can lead to under-powering the CPU for X ms, leading to dropped frames, stuttering UI, etc. Instead of sampling the CPU at a specified rate, the interactive governor will check whether to scale the CPU frequency up soon after coming out of idle. When the CPU comes out of idle, a timer is configured to fire within 1-2 ticks. If the CPU is very busy between exiting idle and when the timer fires, then we assume the CPU is underpowered and ramp to max frequency.
5) Interactivex:
This is an Interactive governor with a wake profile. More battery friendly than interactive.
6) Lulzactive:
This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
7) Lulzactiveq:
Lulzactiveq is a modified lulzactive governor authored by XDA member robertobsc and is adapted in Siyah kernel for GS2 and GS3. Lulzactiveq aims to optimize the second version of luzactive from Tegrak by a) providing an extra parameter (dec_cpu_load) to make scaling down more sensible, and b) incorporating hotplug logic to the governor. Luzactiveq is the first ever interactive based governor with hotplugging logic inbuilt (atleast the first of its kind for the exynos platform). When CPU comes out of idle loop and it's time to make a scaling decision, if load >= inc_cpu_load CPU is scaled up (like original luzactiveq) and if load <dec_cpu_load, CPU is scaled down. This possibly eliminates the strict single cut-off frequency for luzactiveq to make CPU scaling decisions. Also, stand hotplug logic runs as a separate thread with the governor so that external hotplugging logic is not required to control hotplug in and out (turn On and Off) CPU cores in multi core devices like GS2 or GS3. Only a multi core aware governor makes real sense on muti-core devices. Lulzactiveq and pegasusq aims to do that.
8) Smartass:
Result of Erasmux rewriting the complete code of interactive governor. Main goal is to optimize battery life without comprising performance. Still, not as battery friendly as smartassV2 since screen-on minimum frequency is greater than frequencies used during screen-off. Smartass would jump up to highest frequency too often as well.
9) SmartassV2:
Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.
10) Intellidemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors )
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
11) Lazy:
This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.
12) Lagfree:
Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.
13) Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source. Tweaks comes from 1) Knzo 2) Morfic. The original idea comes from Netarchy. See here. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
14) LionheartX
LionheartX is based on Lionheart but has a few changes on the tunables and features a suspend profile based on Smartass governor.
15) Brazilianwax:
Similar to smartassV2. More aggressive ramping, so more performance, less battery.
16) SavagedZen:
Another smartassV2 based governor. Achieves good balance between performance & battery as compared to brazilianwax.
17) Userspace:
Instead of automatically determining frequencies, lets user set frequencies.
18) Powersave:
Locks max frequency to min frequency. Can not be used as a screen-on or even screen-off (if scaling min frequency is too low).
19) Performance:
Sets min frequency as max frequency. Use this while benchmarking!
So, Governors can be categorized into 3/4 on a high level:
1.a) Ondemand Based:
Works on "ramp-up on high load" principle. CPU busy-time is taken into consideration for scaling decisions. Members: Ondemand, OndemandX, Intellidemand, Lazy, Lagfree.
1.b) Conservative Based:
Members: Conservative, Lionheart, LionheartX
2) Interactive Based:
Works on "make scaling decision when CPU comes out of idle-loop" principle. Members: Interactive, InteractiveX, Lulzactive, Luzactiveq, Smartass, SmartassV2, Brazilianwax, SavagedZen.
3) Weird Category:
Members: Userspace, Powersave, Performance.
I/O Schedulers
1) Noop
Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.
Advantages:
Serves I/O requests with least number of cpu cycles. (Battery friendly?)
Best for flash drives since there is no seeking penalty.
Good throughput on db systems.
Disadvantages:
Reduction in number of cpu cycles used is proportional to drop in performance.
2) Deadline
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
Advantages:
Nearly a real time scheduler.
Excels in reducing latency of any given single I/O.
Best scheduler for database access and queries.
Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
Like noop, a good scheduler for solid state/flash drives.
Disadvantages:
When system is overloaded, set of processes that may miss deadline is largely unpredictable.
3) CFQ
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.
Advantages:
Considered to deliver a balanced i/o performance.
Easiest to tune.
Excels on multiprocessor systems.
Best database system performance after deadline.
Disadvantages:
Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
4) BFQ
Instead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.
Advantages:
Believed to be very good for usb data transfer rate.
Believed to be the best scheduler for HD video recording and video streaming. (because of less jitter as compared to CFQ and others)
Considered an accurate i/o scheduler.
Achieves about 30% more throughput than CFQ on most workloads.
Disadvantages:
Not the best scheduler for benchmarking.
Higher budget assigned to a process can affect interactivity and increased latency.
5) SIO
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.
Advantages:
Simple, so reliable.
Minimized starvation of requests.
Disadvantages:
Slow random-read speeds on flash drives, compared to other schedulers.
Sequential-read speeds on flash drives also not so good.
6) V(R)
Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.
Advantages:
May be best for benchmarking because at the peak of it's 'form' VR performs best.
Disadvantages:
Performance fluctuation results in below-average performance at times.
Least reliable/most unstable.
7) Anticipatory
Based on two facts
i) Disk seeks are really slow.
ii) Write operations can happen whenever, but there is always some process waiting for read operation.
So anticipatory prioritize read operations over write. It anticipates synchronous read operations.
Advantages:
Read requests from processes are never starved.
As good as noop for read-performance on flash drives.
Disadvantages:
'Guess works' might not be always reliable.
Reduced write-performance on high performance disks.
Some Kernel Settings from Users out "there" (Note: These are for the SGS3 kernels):
Swifks using LeanKernel (4.3 kernel/4.2 OS):
Swiftks said:
Just thought I'd share my settings:
Governor: InteractiveX
Custom Settings:
go_hispeed_low = 95
screen_off_maxfreq = 486000
Scheduler: ROW
Min: 192 MHz
Max: 1512 MHz
Frequency Lock: ON
MP-Decision: OFF
Multicore Power Saving: 1
GPU Governor: On Demmand
GPU Max Frequency: 480
Voltages:
192 MHz = 775mv
384 MHz = 800mv
486 MHz = 800mv
594 MHz = 825mv
702 MHz = 850mv
810 MHz = 900mv
918 MHz = 950mv
1026 MHz = 1000mv
1134 MHz = 1025mv
1242 MHz = 1050mv
1350 MHz = 1075mv
1458 MHz = 1100mv
1512 MHz = 1125mv
Enjoy
Sent from my SGS III
Click to expand...
Click to collapse
liltitiz from his thread [KT747: Share & discuss your settings]+[govs & scheds info] using ktoonsez' KT747 kernel.
Post is here
liltitiz said:
With my new settings I can get up to 5-6 hour of screen on with a discharging time of around 24 hours. Before I start playing with cpu1, I couldn't get more than 4hours of screen on with a discharging time around 15hours since the Linux 3.4 kernel
Note that I also use greening to hibernate apps and Tasker to turn on things like gps, data, wifi, auto rotate only when I need them.
I readjusted my settings yesterday to test something out if you got no loss in performance yet you can try them out:
Ktoonservative setup to input in ktweaker:
Boost 2nd core on button:0
Boost cpu:540
Boost gpu: doesn't matter
Boost hold cycle :0
Boost turn on 2nd core:0
Cpu down block cycle:0
Down threshold:75
Down threshold hotplug:60
Freq step:3
Ignore nice load:0
No 2nd cpu screen off:1
Sampling down factor:3
Sampling rate: 25000
Sampling rate screen off: 45000
Up threshold:94
Up threshold hotplug:96
---------------------------------------------------
Command lines to apply my asswax settings on cpu1 :
echo asswax > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 135000 > /sys/devices/system/cpu/cpufreq/asswax/awake_ideal_freq
echo 200 > /sys/devices/system/cpu/cpufreq/asswax/down_rate_us
echo 189000 > /sys/devices/system/cpu/cpufreq/asswax/interactive_ideal_freq
echo 95 > /sys/devices/system/cpu/cpufreq/asswax/max_cpu_load
echo 65 > /sys/devices/system/cpu/cpufreq/asswax/min_cpu_load
echo 250000 > /sys/devices/system/cpu/cpufreq/asswax/ramp_down_step
echo 50000 > /sys/devices/system/cpu/cpufreq/asswax/ramp_up_step
echo 81000 > /sys/devices/system/cpu/cpufreq/asswax/sleep_ideal_freq
echo 135000 > /sys/devices/system/cpu/cpufreq/asswax/sleep_wakeup_freq
echo 5000 > /sys/devices/system/cpu/cpufreq/asswax/up_rate_us
---------------------------------------------------
If you set your ktoonservative to turn off 2nd core(cpu1) when screen is off, then it doesn't matter because your cpu1.will be off so only your ktoonservative(cpu0) settings matter. Personally I use 486 as my max freq when screen is off.
Click to expand...
Click to collapse
Before we begin on the below, I must continue something about kernels from above due to character limits in posts.
A word of advice from vikas.mishra via XDA RD dorimanx in this post:
This is long INFO post from real chip designer that help to create CPU/GPU and other chips for the living for 14 years now, so respect
He sent me PM, for now he cant post that by him self.
Vikas is monitoring our thread and want to say his professional stand about UV/OV and why it's works for some and why not for others.
==================
I am calling Vikas(vikas.mishra) to the speech stand
Hello people.
Let me introduce myself - my name is Vikas Mishra and I am a chip designer by profession. .
I have worked on critical parts of design of TI OMAP4, OMAP5, Nvidia Tegra 3 etc and have been doing this for the last 14 years.
Of late - I have seen a lot of folks posting BUGS about undervolting of the GPU/CPU.
I think I can explain what are the possible issues with undervolting/overclocking in a laymans language.
It is a little long winded but I think the length is needed for providing the appropriate context.
* What is inside your Cellphone
Your cellphone is an amazing device. It is a full fledged computer
that fits into your pocket. They have all the standard components
that a computer has - except that they are all usually soldered on
the motherboard directly and are not meant to be user-servicable.
The chief components inside your cellphone are
1. Application Processor (AP)- this is the heart of a modern
cellphone. These are manufactured by many companies - the main
ones are Qualcomm, Nvidia, Samsung and Apple. The other not so
well known ones are made by Texas Instruments, ST Ericsson,
Marvell and Broadcom.
A modern AP has logic to control the camera and process the image
that it generates, to do video encoding (video recording) and
video decoding (movie watching), Audio processor etc. in addition
to the well known CPU and GPU.
2. Power Management Controller - This is the chip that is
responsible for generating and regulating the voltages that are
used by all the components on the board.
3. DRAM - not very different from the DRAM found on a PC (except
that it is lower voltage)
4. Flash - for storage
5. Touchscreen controller
6. Logic for microphone, speaker
7. Battery
One of the most complex piece of circuitry on the phone is the AP
and the power management controller.
* Circuit Basics
A modern AP has millions of circuit units called (Flip
Flops). These flip flops have two parameters associated with them
called Setup time and Hold time. More details on what a flip flop
can be found on the wikipedia at
http://en.wikipedia.org/wiki/Flip-flop_(electronics) . This is a
nice bit of bedside reading if you are interested.
A setup time roughly indicates what frequency you can run a design
or an AP at before it becomes unstable.
A hold time roughly indicates the maximum voltage till which a
design is stable.
A fully technical analysis of what is involved in these timing
parameters requires a degree in electrical engineering but in broad
terms the problem is described below.
Chip designers diligently ensure that all of the millions of the
flip flops in a chip meet the setup and hold time across a broad
range of voltages and silicon parameters. They do a pessimistic
analysis to ensure that a chip will run reliably across a wide
range of voltage/frequency combinations.
However, contrary to the popular belief, chips vary widely in their
silicon parameters. Even chips on a the same wafer and different
flip-flops within the same chip can have widely different silicon
parameters. This is why what works on one particular chip will not
work on the other chip.
Your silicon manufacturer provides a range of voltages and
frequencies across which the device can work reliably. The phone
manufacturer will further narrow down the range depending on the
other components they choose within the phone board.
* How does voltage affect the design
Reducing voltage makes the design slower and increasing voltage
makes the design faster.
So can I keep on increasing the voltage for ever and make the
circuit faster and faster. The answer is no - a point will come when
the circuit will become unreliable. This becomes unreliable because
the "hold time" of one or more of the flops will start
violating.
As you reduce the voltage of the design, the circuit will start
becoming slower. However typically it will continue to work till at
apoint it starts failing - this failure occurs due to violation of
"setup time" of one or more flops in the design.
So what happens when the setup time or the hold time of a design
fails - the answer is that it is unpredictable. Meaning suddenly if
you ask the processor what is the value of 2+2, the answer it will
provide could be unreliable - in some cases it could be 3, in some
cases it could be 4 in some cases it could be -2349783297 (a random number).
I am of course oversimplifying but I hope you get the picture.
* How does undervolting affect your phone processor
The reason undervolting is so appealing to people because they
thing that undervolting will save power and improve battery
life. While this is true in theory, in practice there is a caveat.
It will reduce the power of the chip, but the power consumed by the
phone as a whole will not improve. In some cases in fact it can
deteriorate. Let me explain.
The most power hungry part in the phone is not the AP - it is the
LCD screen. All of these screens consume a ton of power. So even
though your AP is now consuming lesser power, the overall impact to
the phone as a whole is not that much.
If you accompany undervolting with a frequency reduction (which you
should), the total time taken for doing a web page rendering (for
example) would increase. During this time the screen is on and it
has more than compensated for the power that you saved in the
AP.
You could of course come up with examples where this wouldn't
happen - but on a whole, IMHO, you should leave the voltage of the
AP/GPU/CPU to the guys who know the system best - the guys who
designed the chip and people who manufactured it.
* How does overvolting/overclocking affect your phone processor
If you want that last drop of performance from your phone and you
over clock it, at a point some of the design flops will start
violating the hold time and the design will stop working reliably.
Again, in some anecdotal cases this would work - but this is not a
reliable means/mode of working. Just because your friend's or your
first cousin's girlfriend's phone works - doesn't mean yours will
work as well.
* What are the user observable impacts of undervolting/overclocking?
It is hard to say - simply because there are so many of flops in
the design.
In some cases - you wouldn't see anything wrong with the phone
until one day you do. In some cases it will result in a SOD
immediately. In some cases it will result in your phone not waking
up reliably.
IMHO the risks of issues with undervolting/overclocking far
outweighthe potential gains you may get out of it. Usually there
is no lasting damage to the phone/AP if you overlock/undervolt but
it is possible to do it. For example, You run the phone at such a
high frequency that the chip temperature becomes more than what it
was designed for and the Silicon just fails.
So "Just say No" . Don't overclock or undervolt your phone -
leave it to the guys who really understand what they are doing.
Thanks,
Vikas
Click to expand...
Click to collapse
^*v*^*v*^*v*^*v*^*v*^*v*^*v*^*v*^*v*^
Memory Management
Did you know that you can also free up some internal memory space by just basic maintenance? You can install a Cache Cleaner from the market. I use Cache Cleaner NG (root) and CacheMate (root) which will clear your cache for you, Cache Cleaner NG will even clear your cache on your SDcard. Open Root Explorer and if you see a bunch of free floating cache files, those need to go. Wasted space. Small in the scheme of your SDcard, but still wasted.
So here we go (best part is at the bottom though):
Ok so you go into XDA on your phone, go to the themes page and look at what and how people are theming their phones or see some pix of someone's SetCPU profiles. All those develop a cache that takes up space on your phone. Now lets say that you go to the market and look through some apps or update your apps (more on this later). This also generates cache, usually up to 2-4mb. Ever try to download something from the market and it says something like "not enough space". This not needed cache may be some of the reason.
Here are some tricks and apps that some of you may know and also some tricks that I have found that I am sure most don't know about.
SOME GOOD LOW MEMORY APPS:
Cache Cleaner NG and Cache Mate (both root and free-Cache Mate has a paid but the free one works just fine.)
Diskusage (free) ~ This one will show you a graphical version of your /data/apps and also you SD card to show you exactly what is taking up so much space. You can click on that item and hit "Show" and it will take you to the app's page in Manager Applications. It also has a root function too that will allow you to see what is in /system, /cache, /data,…
Some sort of file manager to get to some things I'll mention below. (I use Root Explorer)
SOME MEMORY CLEARING TIPS AND TRICKS:
Home Launcher ~ If you have a 3rd party home launcher, see if it has the ability to long-press an icon to take you to its screen in the Manage Apps section. I use APEX and if you long-press on say Market, it takes me to the same place as is I were to go to Settings->Applications->Manage Apps->Market. Instead of all that, just long-press on the icon and BAM! it takes you there. Here you can clear out your cache for the market or delete the data (if you need to do that). Or clear the cache of the XDA app b/c you looked at too many pix.
Browsers ~ These develop cache that takes up memory and space, especially the stock browser. If you use a 3rd party, you can get the settings to clear cache, cookies, passwords,…on exit. I use Dolphin, but I am pretty sure that most have something like this on them. (side note: most 3rd party browsers once exited will not run in the background unlike the stock one)
Media ~ So you download a bunch of mp3's from the net or click on some pix and save it to your SD card. Or maybe you just felt like wiping your card and having a fresh start. Every time you reboot, you phone will scan media. No big deal, but the more you criss-cross things from PC to phone and back again, it can create a bunch of double files in your media cache on the phone. With the proper placement of .nomedia files (this prevents your media scanner from doing just that, scanning media- i.e. pix, jpegs,…Don’t place a .nomedia in your music, album art or DCIM files**bad).
Every once in a while, I'll hit the Diskusage or go to Manage apps and clear the media cache. Then I got to my file manager and the DCIM->Thumbs and delete the .Thumbnails files (should be 2). Unmount the SD card and remount to start the media scan, pull up the Gallery and wait for the thumbs to come back (depending on how many you have, this could take awhile). By doing this you can get almost 5 mb back if you have a bunch of double scans in your media folder.
AND NOW FOR SOME TIPS THAT MOST COULD NOT KNOW:
LOSTDIR - Lets say that you have your phone plugged into your PC and for some reason you, in a fit of rage, jerk the plug out without unmounting it first. This creates a file that is put into your LOST DIR folder on your SD card. Anytime you don't safely unmount the SD card, it will create a file in that folder. In the scheme of the SD card, it isn't too much, but I don't like having useless items free floating about.
Here is a good explanation of what the Lost.dir is for, seems legit, I buy it.
TOMBSTONES - So you are downloading an update from the market and for some reason your phone freezes and the Force Close-Retry-Wait doesn't work out for you. You have to do a battery pull. Frustrating I know and the memory takes a hit too. Every time you have to do a battery pull because of a freeze up or something of the like, it creates a TOMBSTONE file in /data. These are useless and can be deleted. If you are flashing ROMs and are constantly having to do battery pulls b/c market crashes or an app freezes, then you are creating a Tombstone file.
**Here is where your file manager (with root) will help. Go into /data and scroll all the way to the bottom and open /tombstone. There should be some files in there and depending on how many there are, I could be a nice chunk of wasted memory. Just select all and delete. They are not needed. Your internal memory should go up by doing this.
LOST & FOUND - Same scenario, but now go into /data/ cache or /cache and you'll see Dalvik-Cache (don’t mess with this), Lost & Found and Recovery. If you tried to download an app and it got frozen for some reason and had to do a battery pull, the apk will be free floating in there, uninstalled (free floating radical). You can delete this. While it isn't in the Dalvik-Cache folder, it is taking up space. Once you are able to download something completely and correctly from the market, it will populate into Dalvik-Cache correctly and won't be a free radical, as I like to say.
Useful Apps
These are some apps that will help you get the most of your battery life. I will put a brief descpition of them and you can also click on their names to take you directly to their market link. Note that some of these are ROOT apps and almost all of them also have PAID versions that greatly expand their functionality. Use the free ones and see how you like them and then kick in for the PAID ones if you want. The only one that I really suggest paying for right out of the gate to get the most out of your battery is Juice Defender Plus.
Tasker –
Paid app from the Market. This app is highly technical and not for noobs. Use at your own risk.
I would love for some of you out there to give me your Tasker Battery Saving Profiles. Either put them in the thread here or PM to me directly.
Here is a thread about how it works by brandall:
[TUT] The Ultimate Noob/Beginners Guide to Tasker
Greenify –
XDA Thread is here: READ IT (at the very least, read the OP)
This app is probably one of the best battery saving apps that has come out in quite a long time. It allows you to "Hibernate" apps that are not being used at the time, get them out of the foreground and prevents them from running when not in use, thus eating battery.
It is really easy to use. All you have to do is fire it up, grant Root and then select the apps that you want to "Hibernate". (Note: be very careful what types of apps that you do this with, i.e. /system/apps, as it could cause adverse effects like missed notifications, missed SMS/MMS, misbehaving apps,...you get my point I hope).
Batstat Widget –
I know, I know. Above I said that widgets were nothing more that monitoring apps on your home page, but this one works great, has low memory and is very, very simple. It shows Charge in %, Volts to know when you are FULLY charged and Temperature F/C to tell you that your phone is getting hot and exactly how hot it is.
BetterBatteryStats –
This app will show you what exactly is eating at your battery. Processes, Running Services, Wakelocks, Partial Wakelocks. It is a PAID app but for XDA users it is free. See here for more extensive details, instructions, screenies, change-logs,... and credits go to Chamonix and his development team for this app.
JuiceDefender (Plus) [Since I use JD+, that is what I am going to refer too.]
–
This app’s ability to kill Radio/Data has NO EFFECT on phone calls or messaging. You will still get that call in the middle of the night you were expecting.
If you set it to custom, the go into the settings tab on the right and then all the way at the bottom, there is two buttons to push, The first in Interactive which will pull up Juice Defender for up for any app that isn't already configured and the other is Configure Apps. This is the one that you can customize on an app-to-app basis where if you are no using an app and the screen is locked, it kills the radio/data traffic for that app.
Say you are listening to IHeartRadio, this you would want either Enable or Enable/off (which means the screen will be locked but the radio/data will be working). Now take the browser. If you are not using the browser, then you don't need it transmitting data right? So you would set that one to Enable (which means that it will only enable data traffic when that app is being used).
Juice Defender only works when the screen is locked (WidgetLocker lock screens interfere with JuiceDefender), don't forget and all widgets are battery drains b/c all they really are is a monitoring app and if it is tied to something like Facebook or Google+, then that data will be running constantly.
Settings:
Enable = Radio/data on when app is in use (front)
Enable/off = Radio/data on for background apps (when screen is locked)
Disable = Disables radio/data traffic completely when that app is running
Do Nothing = What is says
Examples:
Angry Birds = Disable (Here is a little known trick that I use for this and any game with Ads. With this and something like Adfree, no more ads in Angry Birds even though the ads are embedded in the .apk)
Pandora/Jango/ Tune-in = Enable/Off (this will keep your battery temp down when streaming)
Browser/ Market = Enable (not enable/off b/c then it will keep your radio/data open)
Beautiful Widgets = Enable/off
mClock/Clockr = Enable/off
SMS/MMS = Enable or Do Nothing (why would you push disable)
I have been using JD+ for over a year on 3 different phones and multiple ROMs and have noticed a considerable difference in battery life. Just takes some time to figure out YOUR settings and what YOU like. I have also used it on Stock kernel and had no problems either.
Here are my personal setting but I am on JD+ and not Ultimate
Profile - Customize
Notification - Graphical
Settings
Mobile Data and WIFI both Enable
Options - Auto Disable
Location - Disable
Schedule -Enable --->2hrs
Night Enable --->12a to 9a (user take priority)
Apps --.Set to Interactive
E = Enable
ESo = Enable/Scrren Off
D = Disable
DN = Do Nothing
At-Bat12 = ESo
IHeartRadio = ESo
Jango = ESo
Sticher = ESo
Dolphin = E
Google Play Store = E
Messaging = E
Twitter = E
XDA pre = E
Zedge = E
Angry Birds (all variants) = Disable --->You get no ads this way wink wink
These are all Do Nothing
Addfree
Apparatus
BW
Betterbatterystats
Cachemate
Elixir
Fasterfix
FlickGolf
Google Search
Maps
Moboplayer
PowerAmp -->I can listen to music without it looking for Album Art b/c it is set to do nothing, so one of the above apps take priority and when the screen is off, data is off when I am listening to music
Quadrant
Blah, blah, blah you get the idea.
If you have every app you own and in the phone set to do "something", then you are going to run into priority issues when multi-tasking which will kill your battery for 1 b/c it is opening and closing radios and 2 for the RAM it is taking to figure out which priority take the lead. Hence why I have so many set to Do Nothing.
LBE Privacy Guard –
There may or may not be some issues with this app and Jelly Bean, so make sure you read the Market Comments and hit their website to make sure. Thanks to mypenismighty for the tip.
This will go good with JuiceDefender, as they both prevent unwanted data transfer. Protect your privacy by controlling the permission of each application to access your sensitive data. Block malicious operation from Mal-wares and Trojans. Block unwanted network traffic if you don’t have a unlimited data plan. Find out which application is trying to steal your privacy by checking the security log.
RAM Munchers eat battery too. These will fix that for you.
Autostarts (paid-CAUTION this is for advanced users) –
Keep control over your phone: See what applications do behind your back.
Shows you what apps run on phone startup, and what other events trigger in the background. Root users can disable unwanted autostarts and speed up their phone boot.
Watchdog –
See what is eating your RAM. Hint: if it is using RAM,then probably it is also using battery too.
Spare Parts –
Spare Parts allows you to enable some settings
that are not found in the default setting menu
Process Monitor –
List the running process on your Android device.
Long click item to kill application or open application.
Fastboot –
This is a handy little app that kills all your services at once and lets them restart back up. I use this right before I hit the lock screen, so that if any app-services are running that I don’t have configured in Juice Defender Plus they will be killed, frees up about 50-70mb of memory, and then I lock the screen and JD takes over. This one is optional if you want it or not. I like it just fine and it works for me.
Matte Screen Filter –
Puts a sort of Dim setting on your screen. Almost like a display overlay, ok? And I did mean to rhyme those. I don’t use it because I have my display set how I want it but you can.
Battery Calibrator –
Pointless, but if you want to check out more info, click the hide tag below.
If you are having some haywire battery readings, this is for you. THIS WILL NOT INCREASE YOUR BATTERY LIFE, but will give you a truer reading if your battstats somehow get corrupted.
When you flash a new ROM, it is always best to wipe the old battery stats associated with that ROM, so you can start fresh as a daisy. How this works is you plug you phone in and charge to 100%, do not mess with it or surf the net (I do this overnight). While still plugged in, hit the apps, grant SU permission and hit the Calibrate Battery button. Grant SU permission again and once done, unplug your phone. Your Batterystats.bin has been deleted. You running your phone down by just using it normally. Most say to run it until it shuts off, but I have had bad experiences doing this, so I let it get to 10-15% and plug it in then. Charge fully up to 100% (again no surfing or games) and you will notice a dramatic increase in battery life.
**Note that this can be done two other ways. You can boot into CWR or Custom Recovery and go to Advanced Settings and there will be the Wipe Batterystats.bin option. Or you can do it manually by going into /data/system/ and deleting the batterystats.bin in there. Any of the three methods work to get the entirely same result in the end. I just like using the app or manually myself. **
Why battery calibration is important and what it is doing.
The app and what it does is more for when you are flashing a ROM and have around 60% and then once booted up fully, you charge it up to 100%. Decided you don't like your ROM and go back to your original ROM via backup, it will show 60% instead of the 100 or 90% you had before you went back to back up b/c you backed up the batstat bin when you nandroided your original ROM. Also simply charing your phone up to 100% and shortly after you unplug it, the Battstats will reset.
Recently (about this time last year) there has been information debunking this process. I will post it below. Here is the post by Dianne Hackborn, a Google Dev on her G+ account.
Dianne Hackborn - Jan 12, 2012 - Public
Today's myth debunking:
"The battery indicator in the status/notification bar is a reflection of the batterystats.bin file in the data/system/ directory."
No, it does not.
This file is used to maintain, across reboots, low-level data about the kinds of operations the device and your apps are doing between battery changes. That is, it is solely used to compute the blame for battery usage shown in the "Battery Use" UI in settings.
That is, it has deeply significant things like "app X held a wake lock for 2 minutes" and "the screen was on at 60% brightness for 10 minutes."
It has no impact on the current battery level shown to you.
It has no impact on your battery life.
Deleting it is not going to do anything to make your more device more fantastic and wonderful... well, unless you have some deep hatred for seeing anything shown in the battery usage UI. And anyway, it is reset every time you unplug from power with a relatively full charge (thus why the battery usage UI data resets at that point), so this would be a much easier way to make it go away.
Click to expand...
Click to collapse
Here is a post from this thread with ERD Entropy512 and I discussing the Battery Calibration app.
Proof that these things work. Stock battery by the way. Sorry for the huge pix. I'll tag them with a Hide Parse for better viewing real estate.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Battery screenshots as of 12/13/12
View attachment 1561698View attachment 1561700View attachment 1561701
Change Log:
9 August 13 -Added in Greenify, Tasker, Kernel settings, cleaned up a bit.
13 December 12 - Added more battery screenies
2 November 12 - Initial Post
***********
If anyone has any tips or tricks that they want to share, by all means post them in here and I will link it in the OP. We are all in this together.
After reading this posts I am afraid to even use my phone cuz battery will drain lol jkjk! Thanks great thread!
Awesome thread man! Really glad to see you brought it over here!
Thanks for taking the time! I know it'll come in very handy for just about everyone.
Great job on a great guide!
:thumbup::thumbup:
Sent from my SGH-T999 using xda app-developers app
Woodrube said:
Y U Quote the whole OP
Click to expand...
Click to collapse
Awesome guide.. We thank you
Sent from my SGH-T999 using xda premium
This is some really great information. Thank you for taking the time to share it with everybody.
I knew it wouldn't take long for this to get to the top!
:thumbup:
Sent from my SGH-T999 using xda app-developers app
Great thread thank you
Sent from my SGH-T999 using xda app-developers app
I wanted to warn people that LBE Privacy Guard caused crazy boot loops for me. The reviews from the Play Store suggests that it's a Jellybean issue. Anyway, I was able to go into recovery, fix permissions, and force stop and uninstall before it went crazy again. Other than that, thanks for the great tips!
Woodrube good post, I remember seeing this in the vibrant section. Keep up the good work mod.
Sent from my SGH-T999 using Tapatalk 2
Thanks man. I ported the meat and bones of it over, but I added a ton of stuff specific to the SGS3, plus the sections about Governors and I/O schedulers.
If anyone reads this, I could use more OC/UV examples to put in the OP. It would be much appreciated.
This is great, what really got me is how the phone doesnt automatically go to the best tower for the best signal, so I will defnitely start toggling airplane mode when I travel, thanks a lot for all this helpful information and apps that can help up save battery as much as possible!
Be sure to turn off Latitude updates in
Maps > Menu > Settings > Location settings > Location reporting > Do not update your location
Already on the portal.
Great Great Great!
Thanks a lot.
Plus Post for anyone.....we seem to forget the things that kill us....back stab us the most when it comes to Battery Life!!
GOOD POST!!! VERY DETAILED AND INFORMANT!!!!
Great advice on the whole, but I don't agree with the stuff about app widgets.
Widgets don't use a bunch of resources just because they are widgets - I think you could almost say the opposite: the design of widgets allows them to be visible on your desktop without using any resources because the app code that controls the widget only needs to be loaded when the widget changes.
In the end, the resources used by an app widget depend on what it does and how it is designed - same as for any app. If your widget is supposed to go to the network and update some info for you every few minutes then this will drain your battery. However, there are tons of utility widgets that do nothing (and are not in memory) unless they are pressed or one of the phone states they are listening to changes (e.g. a radio is turned on).
Of course, a badly designed app will hurt your battery regardless. Personally I think apps need to get away from creating a custom Application object since these get instantiated whenever the system creates the app's (or app widget's) process, even if it is just to update a widget.
Nice thread
Thxs for this nice thread Any ore would be appreciated.
I have learned a few things besides already being techy.
Nice to see whole lot of apps for android

-THE ULTIMATE =BATTERY LIFE + GAMING PERFORMANCE=[setup/guide/UNDERVOLTING-explained]

Hello everyone i know there are few threads about battery/gaming so i tought to make a thread with a review about battery life + gaming performance and add guides along with it.
Ok 1st i'd like to say i've pretty much flashed every single rom ,kernel, battery saving apps, performance boost apps, mods etc that are currently avilable so trust me i know what i'm writing here.
THREAD NAVIGATION:
Post 1 contains: Undervolting guide & everything related to undervolting CPU & GPU, EMC Overclocking, Rom setup guide, kernel setup (gaming / battery ), kernel settings list of updates
Post 2 contains: Rom & kernel battery life reviews + benchamrks , Performance may cry setup added (battery life settings)
Post 3 contains: Additional info about kernels / governors and what they do , schedulers and what they do & additional scrips.
FAQ Link for rookies and EVERY other question / guide about your HTC One X - Thx to Geko95 = HERE
Wakelocks guide for those with bad battery life - Thx to Goku80 = HERE
=========================================================================
First of all i'd like to give credits and massive thank to these guys who made all this possible:
- Hamdir - for all his guides and contribution for One X , he is one of the main reasons why we have smooth gaming !
- Xmister - kernels ( xm106 )
- Maxwen - the battery saving governor - Smartmax Governor
- Mwilky and his team for Renovate rom
- Patrics83 and his team for RomCleaner tool
- RichmondUK and his venom team for ViperX Rom
- n3ocort3x Kernels
- TripNdroid Kernels
---Excuse me if i've forgot someone.
----------------------------------------------------------------------------------------------------------------
Thread Updates:​
FInally cleaned the whole damn thread , still some left overs
PMC v8 interactive/battery setups added @ post 2. UPDATED 15.5.2013 ///bottom of the post 2
Added New SetCPU v2 profiles Read post 2 at the bottom UPDATED 15.5.2013 ///bottom of the post 2
Added AOSP/AOKP/CM SetCPU , profiles Read post 2 at the bottom UPDATED 2.4.2013 ///bottom of the post 2
Added NEW SetCPU , profiles Read post 2 for changelog ( everything fixed ) UPDATED 25.3.2013 ///bottom of the post 2
Added SetCPU GUIDE and my Save with SetCPU Profiles BALANCE Version this is only for those who have SMARTMAX & PMC GOVERNORS in their kernel UPDATED 25.3.2013 ///bottom of the post 2
Added EMC OC Guide, this is only for those who use XM kernel 235# and above UPDATED 12.3.2013 /// post 1
Added PMC v5 this is only for those who use XM kernel 226# and above (PMC is now the new governor at XM kernel read post 2 for more info ) UPDATED 10.3.2013 /// post 2
Added *Performance may cry setup v2* (battery life setup)- UPDATED 3.3.2013 /// post 2
Added info about schedulers and what they do - UPDATED 22.2.2013 /// post 3
Added info about governors and what they do - UPDATED 26.2.2013 /// post 3
Kernel updates:
XM kernel beta version(s) :
#304
Disable JRCU, according to maxwen it caused lockups.
#303 cpu clock changes reverted.
Switching governors will no longer update calibration control.
Touch-screen updates(S2W,DT2W) from maxwen.
Variant info added back.
#303
Included maxwen's double-tap to wake (needs sysfs enable), and inner CPU clock changes.
#302
Included maxwen's fixes for freq. locks and LP mode switch with OC.
#301
Default UV removed.
​Xm-Kernel STABLE version(s) :
#106
#106v2
#106v3
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
Kernel reviews @ Post 2​
========================================================================================[/CENTER]
- If you'd like to donate to any of these ppl please do so because they're the ones who made this possible, i'm just making it simple and hopefully preventing questions from everywhere about battery/kernels/roms , which is the best etc etc. And remember the kernel is most responsable for your battery life. So the point is you can use any rom of your choice with this kernel as long as you do things right. And follow what i wrote down there.
As for me i'd be happy just with simple *thanks* button if this was helpful to you in any way.
------------------------------------------------------------------------------------------------------------------------------------------------
ROM, Kernel, Undervolting, underclocking, overclocking settings:
ROM Settings:​
Roms should be cleaned with RomCleaner tool just i used my own scrip since i wanted to keep some apps and widget, after cleaning i had 114 system apps on my hox , Renovate rom comes with around 200 or so + the apps you'll install. (rom cleaner also improves the battery and rom speed a little) Other then that nothing else changed except i added tons of mods but thats up to you what you'll add. And the only setting you'll need to enable in Renovate rom is 2d rendering This improves alot scrolling times in apps especially the ones like *Advanced system care and Rom Toolbox lite*​
Kernel settings: ​
Battery settings​
the only thing you'll have to do manualy is switch the governor after flashing Xm kernel onto Smartmax And thats all you have to do to have great battery life, in my case i underclocked my CPU to 1200mhz with smartmax governor + RoW scheduler , if you want to keep it faster (but you don't really need any more speed with this governor) leave it as it is, or to make it even faster use Smartmax + deadline + sampling rate 30000 + touch poke freq 1500000 ] , you can make it even faster but trust me no need for that. Use this governor and it's settings as daily settings for light tasks and light usage of your phone.
Gaming settings:​​​
For this you should be using interactive / gaming governor + deadline scheduler and that's all you need to do of course if you do underclock your CPU make sure you reset it back to 1500 after you change the governor , no need for apps that boost your phone, if you wanna make things even faster and governor more aggressive change this value in governor settings : go max speed load 45 this will increase speed ( remember this will make battery drain even faster ) , and if you wanna push max performance that your hox can deliver at current time change min frequency 1500 as well remeber THIS will make your hox battery drain fast as hell ! And sd card read ahead speed should be 4096 if is not set like this by default you can use system tuner and change it. For tuning governors and freqs you could use SetCPU easier and faster to do so.
Games that i used for testing are: NFSMW, MC4 , Shadown gun deadzone, Wildblood.
Each of this games were incredibly smooth and playable like never before.
Undervolting​
Ok so as many of you heard undervolting should improve your battery life and it does by maybe 5% tops 10% if you're lucky.
But the main reason why i undervolt is so i keep my phone cooler when gaming you wont notice big difference in avarage daily use without gaming but with gaming you should notice the difference but again this mainly depends on your CPU variant, in my case i have variant 3 which means i can undervolt more then variant 2-1-0 , thats the only good thing about undervolting , of course i could overclock more then other variants but we don't need overclocking with this kernel and rom.
The difference and battery improvement you'll be able to see only this way really and none other this is how : without undervolting and lets say playing NFSMW my phone ON charger reaches around 55c TOPS ( which is overheating and you lose more battery then what your charger can recharge for you ) but with undervolting my phone is reaching TOPS 45C and avarage 40C ( this also depends on the room temperature and your hands body temperature ) The reason why i did tests on charger is because thats the fastest way to test overheating and undervolting and NO do NOT play heavy games while charging this is KILLING your battery and lowering it's life cycle ! it's like eating while sh1tting !!!
Now i can't tell you which values to use since like i said above none chip is the SAME nor the variant so you'll have to figure out this on your own but i can give you the ROUGH idea how-to.
Update - rough idea how to undervolt​ CPU​ properly:​
ok i'll mark frequencies with colors:​
Before we start remember this: Undervolting depends mostly on your ROM , Kernel , USAGE !​
RED = Don't undervolt too much
BLUE = Undervolt normally as you do
BLACK =Don't undervolt or undervolt just a little this will depend on your variant and rom mostly
1500+ , 1400,1300,1200,1100,1000 e.g 1500mhz freq. has 1237mV by default if you're a gamer you can undervolt this one to lets say -50-100 (up to the variant) if you're not a gamer you can go even up to -125/150 , now this can depend also on which freq do you use the most in gaming lets say , if you're using quad lock e.g 1500 , -75 should be enough, === freqs under 1500 can be undervolted more since they wont be used, but if you don't use quad locking then you need to balance the undervolting between -50-100 (this depends on the game and which freq it uses the most)
860 , 760, 640 are the freqs in the *middle* those can be undervolted even more , up to -150 (default UV should be around -100 here) since they are barly used but you can use cpySpy to check which freqs your device uses the most and then use that info to balance your undervolting and find right freqs.
475,340,204,102,51 are the freqs more like *screen on standby freqs, mostly 340/51* or the LP core freqs, these should be undervolted MAX -50/75or not at all these freqs are used also for e.g. listening to music while screen off , if you undervolt too much you can experience laggs etc.
Important: Variant 3 can undervolt more then this but it *shouldn't* really up to you to decide​
IMPORTANT: Those who use XM kernel USE TRICKSTER MOD APP ONLY !
First of all you can use guide what i made above for undervolting but since we have accurate undervolting now you SHOULD undervolt THIS way and this way only:
Variant 0 = you can use undervolting max up to -50 MAX ! or if you're doing step by step undervolting you might push some freqs -75
Variant 1/2: You can undervolt MAX up to -75 or at some steps -100 tops.
Variant 3: you can undervolt MAX -100/125 and on some freqs MAYBE -150 , but of course you need to do step by step.
Remember: this are the SAFE undervolting values for all 4 variants You can try undervolting more if you like but i wouldn't recommend it since i'm sure it will most likely cause issues for you.
Remember: The UV values i've used above are supposed to be *DEFAULT* uv you should use , but users with variant 0 MIGHT suffer and have to use lower values
Note: I guess 90% of ppl are lazy to mess with per freq undervolting and finding what works for them and what not since consumes alot of time, anyway you guys should be good with -50-75 variants 0, 1 ,2 , as for variant 3 you should be able to go up to -100-125 on all freqs.[/SIZE]
GPU - Undervolting - Safe values​
[*]Ok so for GPU undervolting you need to be on XM #153 kernel and above and follow this steps:
Use some root explorer to enable GPU undervolting and navigate here:
sys/devices/system/cpu/cpu0/cpufreq/gpu_voltage
Click to expand...
Click to collapse
, open it , the default value is
0 to enable GPU undervolting type 1
Click to expand...
Click to collapse
and SAVE make sure to enable *system as writable*
After you do that you need to download this app from playstore *Trickster MOD* This is the ONLY app whit which GPU undervolting works for now. After that install app and you'll see GPU freqs like this: For e.g. *520000, 484000* etc those are the GPU freqs and their voltage.
The safe values:
Variant 0 = -25MV on all freqs.
Variant 1/2 = -25/50 on all freqs.
Variant 3 = -50-100 on all freqs.
The 1st freq i wrote is 100% safe, the second is ASSUMED to be safe as well, but you wont know unless you try it :cyclops:​
How to test are these values safe and wont freeze/reboot your phone.​
Probably many of you know when you undervolt too much your phone eventually feezes and reboots this happens because phone can't give enough of voltage to the certain frequency that is in that time used mostly so it has no other way out but to freeze and reboot. and the way to test this is it *safe* is either to use *antutu bechmark app* , *epic citadel* or *stability test* Those 3 tend to push max performance very fast and easy out of your phone so if any app gonna show you is it safe it's these , tho sometimes but rarely your phone will run them both without reboots so i suggest you do each of them 2x just to be sure, and even if then sometimes very very rarely if your phone doesn't reboot the last way you could've find out is it gonna reboot is by playing NFSMW for 10mins.
----------------------------------------------------------------------------------------------------------------------------------​
GPU Overclocking & underclocking - Safe freqs​
For this to work use some root explorer and navigate here: sys/devices/system/cpu/cpu0/cpufreq/gpu_oc , open it there you'll see default GPU freqs like this: 520 520 520 520 484 400 304 267 247 those are the DEFAULT freqs on XM kernel and make sure to enable *system as writable* before you start doing anything. Those freqs are great balance for GAMING and BATTERY but if you're an ADVANCED USER you might wanna make those freqs EVEN HIGHER for better performance (not needed imo ) or LOWER for better battery life
- Maximum performance freqs that works for everyone: 560 560 560 560 560 484 400 304 247
- Freqs for battery life while keeping some poor performance (gaming speaking): 304 304 304 304 304 304 304 304 247
- Default freqs ( battery & gaming ): 520 520 520 520 484 400 304 267 247
Thx to Neo for this freqs. ​
-----------------------------------------------------------------------------------------------------------------------------------------​
All kernel settings: S2W Configs: , DoubleTap2Wake Configs: , Activate fast charge: , Enable smartdimmer: , To get your variant: , 3D Tuning: , 2D Tuning: , EMC Tuning ( ram ): , Auto-BLN Control: , Backlight button brightness: , GPU Voltage control: , LP OC: , Audio Min. Freq.:​
Thx to Xmister for this.
S2W Configs:​
Turn off:
Code:
echo "0" > /sys/android_touch/sweep2wake
Click to expand...
Click to collapse
Or you can download "Sweep2Wake-Widget" from Google Play.
Button panel locks to s2w after this distance:
Code:
/sys/android_touch/s2w_register_threshold
Click to expand...
Click to collapse
Screen turns on/off after this distance:
Code:
/sys/android_touch/s2w_min_distance
Click to expand...
Click to collapse
Direction independent(1 - Yes, 0 - No):
Code:
/sys/android_touch/s2w_allow_stroke
Click to expand...
Click to collapse
DoubleTap2Wake Configs:​
Turn on:
Code:
echo "1" > /sys/android_touch/s2w_allow_double_tap
Click to expand...
Click to collapse
Activate fast charge:​Code:
echo '1' > /sys/devices/platform/htc_battery/fast_charge
Click to expand...
Click to collapse
Enable smartdimmer:​Code:
echo "1" > /sys/devices/tegradc.0/smartdimmer/enable
Click to expand...
Click to collapse
To get your variant:​Code:
cat /sys/kernel/debug/t3_variant
Click to expand...
Click to collapse
(Or see it in a root explorer)
cpu_process_id is your variant.
3D Tuning:​If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '520 520 520 520 492 484 380 247' > /sys/devices/system/cpu/cpu0/cpufreq/gpu_oc
Click to expand...
Click to collapse
If you want to set them at boot, use an init script. Here is one. Just copy to /system/etc/init.d and set the permissions to executable by everyone with a root explorer. (Thx to Byrana)
Here is a flashable script that will work on newer kernels too for everyone. It also enables fast_charge. (Thx again Byrana)
2D Tuning:​If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '520 520 520 520 492 484 380 247' > /sys/devices/system/cpu/cpu0/cpufreq/two_d_oc
Click to expand...
Click to collapse
You should NOT OC this higher than 3D.
EMC Tuning:​If you want to change clocks, you have to write the whole clock table again, from up to down. In case you want to reset to default, this is it:
Code:
echo '667 667 667 667 408 408 408 408' > /sys/devices/system/cpu/cpu0/cpufreq/emc_oc
Click to expand...
Click to collapse
If you want to OC let's say to 800MHz:
Code:
echo '800 800 800 800 667 667 408 408' > /sys/devices/system/cpu/cpu0/cpufreq/emc_oc
Click to expand...
Click to collapse
Auto-BLN Control:​​Interface:
/sys/class/leds/button-backlight/auto_bln
Click to expand...
Click to collapse
Values:
0: BLN OFF/Green led ON
1: BLN ON/Green led ON
2: BLN ON/Green led OFF
Example:
Turn off Auto-BLN:
Code:
echo '0' > /sys/class/leds/button-backlight/auto_bln
Click to expand...
Click to collapse
The changes will apply from the next notification.
Backlight button brightness:​Interface:
/sys/class/leds/button-backlight/button_brightness
Click to expand...
Click to collapse
Values:
0-255: 0 is off, 255 is the maximum possible.
Example:
Code:
echo '50' > /sys/class/leds/button-backlight/button_brightness
Click to expand...
Click to collapse
The changes will apply from the next backlight turn on.
GPU Voltage control:​If you want to enable this you should write '1' to /sys/devices/system/cpu/cpu0/cpufreq/gpu_voltage.
In command line that is:
Code:
echo '1' > /sys/devices/system/cpu/cpu0/cpufreq/gpu_voltage
Click to expand...
Click to collapse
After that you need to restart your voltage control app (Trickster Mod).
Now you will see the GPU frequencies multipled by 1000 to separate them from the CPU frequencies. So you will see 520000MHz, etc.
Be advised that there are a really few HOX's that can handle more UV on Core, than the preset 50.
Also incrasing your Core voltage over 1300mV is NOT ADVISED AT ALL. Almost everything uses this voltage on your motherboard.
If you want to enable the values at boot, you need an init script that enables it, so later Trickster mod or anything can set them.
LP OC:​Interface:
/sys/module/cpu_tegra/parameters/enable_lp_oc
Click to expand...
Click to collapse
Values:
0: LP OC OFF
1: LP OC to 620MHz
Example:
Turn on LP OC:
Code:
echo '1' > /sys/module/cpu_tegra/parameters/enable_lp_oc
Click to expand...
Click to collapse
Audio Min. Freq.:​Interface:
/sys/module/snd_soc_tlv320aic3008/parameters/audio_min_freq
Click to expand...
Click to collapse
Example:
Change audio min. freq. to 204MHz:
Code:
echo 204000 > /sys/module/snd_soc_tlv320aic3008/parameters/audio_min_freq
Click to expand...
Click to collapse
Save settings:
If you want any of the above settings saved, you can use Ibas21 recovery package
Click to expand...
Click to collapse
=======================================================================​
Remember you wont probably get same screen on time as i did , you could get even more then i did or less, it ALL DEPENDS on your USAGE/Screen brightness!
That should be all enjoy.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​The screenshots and my usage are in post 2, hope this helps , if not sorry for wasting your time if you read this , cheers and good luck to everyone
If you have any question please feel free to post them and i'll give my best to answer them.
Also as the kernel updates and rom updates go i'll try to update in here as well.
----------------------------------------------------------------------------------------------------------------------------​
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
And lastly i will not be held responsible for anything that may or may not happen to your device ! All you do you do at your own risk.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------​
And of course please hit *thanks* button if this was helpful​ :highfive::good:
==================================================================================​
Bechmarks - updated.
------------
------------
Viper X Rom 3.3.7 XM Kernel 139#[Beta]
Usage:
Somewhere between normal and heavy , battery life was great, not so much on the wifi this time, and all in all great kernel with one tiny bug, if you use autobrightness you'll see flickering , tho this got fixed in 147#. And i plugged the phone right before screen shots for maybe a minut to put pics on the pc and in the meantime i made those screenshots, you can see that in the usage. Brightness varied between low (15%) and maximum. The most used brightness used was 35%.
-----------------------------------------
-----------------------------------------
Black Pearl unofficial beta Rom 4.0.4 - XM Kernel 188#[Beta]
Usage:
- 1st of all , extreme undervolting and underclocking was done for this test.
- The rom and kernel were also flashed for the very 1st time.
--------
--------
================================================================================================
1st how PMC works:​
Well simply i made it use as *ideal_freq* 340mhz , minimum freq is 51mhz , the freq you'll be using alot would be 340/475 , that is your main freq on PMC for boost to avoid huge laggs, another thing is it will try and use most of the time only 1 core unless that core is at 90% cpu load , and min cpu load is 50 to make sure you don't get frequent wakes of 2nd/3/4th cores.​
Interactive PMC Version:
This version is 90% similar to PMC Battery setup except this version is much faster since it acts like INTERACTIVE Governor.
@ Those who don't have PMC Governor in their kernel until / if their kernel dev includes it use *Smartmax governor* for tunning and using my setup
Important ! : While setting your CPU/GPU values don't enable *Set on boot* unless the values are 100% safe for you and by ALL MEANS DO NOT USE MY CPU/GPU VALUES even if you're VARIANT 3 i wouldn't advise it , if you DO USE my values you will 99.9% end up in freeze or reboot !
GPU UV For max battery
2d GPU Underclocking: 304 304 304 304 267 267 267 200
3d GPU Underclocking: 247 247 247 247 247 200 200 200
As for GPU uV i'd suggest -50mv if you're not variant 3. Try first -25 then -50.
NOTE:
Don't even think about gaming with this setup , you'll notice laggs mainly at loading apps and speed of loading apps and mainly speed reduction overall in system , but not so much , the main slowdown is with loading apps and when multitasking you'll see some laggs as well, or for e.g. when playing music and then using volume up/down , that will lagg as well, if you wanna keep it *smoother* you can set *Ideal freq to 475000*
Performance may cry - setup v8a( XM Kernel 302# + ONLY or Kernels with latest Maxwens updates)​
A This settings of PMC Governor should / will deliver you the performance 90% identical to Interactive governor with much much less battery drain ! , this settings can be / should be used for those who MULTITASK alot , this settings/governor should give you 95% lag free experience whatever you do except gaming ! [/I][/B]
PMC v8 INTERACTIVE SETUP for EVERYONE ( Xm kernel users don't need this since PMC governor is in the kernel by default with these values ):​
awake_ideal_freq 475
boost_duration 0
boost_freq 760000
debug_mask 0
down_rate 60000
ignore_nice 1
input_boost_duration 90000
io_is_busy 1
max_cpu_load 75
min_cpu_load 40
ramp_down_step 200000
ramp_up_during_boost 1
ramp_up_step 300000
sampling_rate 20000
suspend_ideal_freq 340
Touch_poke_freq 620000 ( 640 if your kernel kept the old freq table )
up_rate 20000
Cpu freqs:
Min CPu freq : 51
[*]Max Cpu freq: 1100
[*]Scheduler: RoW
Multicore power saving : 2
GPU max frequency : 416
Undervolting: At your choice and how much your variant can support:
Suggested SAFE values for all 3 variants NO GAMING for gaming use +25 more then my values under, example : if variant 1 is -100 NON GAMING , for gaming use -75.
This goes for both INTERACTIVE and BATTERY PMC setups.​
variant 0 : -75
[*]variant 1/2: - 100 ( use -75 if you experience reboot )
[*]variant 3: - 150 / -175 in my case.
PMC BATTERY SETUP v8 For everyone with TUNNABLE Smartmax/PMC governors:​
awake_ideal_freq 204000
boost_duration 0
boost_freq 760000
debug_mask 0
down_rate 60000
ignore_nice 1
input_boost_duration 90000
io_is_busy 1
max_cpu_load 90
min_cpu_load 50
ramp_down_step 200000
ramp_up_during_boost 1
ramp_up_step 300000
sampling_rate 40000
suspend_ideal_freq 204000
Touch_poke_freq 620000 ( 640 if your kernel kept the old freq table )
up_rate 20000
Cpu freqs:
Min CPu freq : 51
[*]Max Cpu freq: 1000
[*]Scheduler: SiO
Multicore power saving : 2
GPU max frequency : 416
Undervolting SAME AS on interactive ( look above )
And heres what users reported with PMC V7 performance setup =)
fade2blak said:
XM 188v2 with your PMC v7 performance version gave me the best results ever. period. thank you :highfive:
Click to expand...
Click to collapse
Insecret said:
now v241 on Viper 3.4.0 with row and pmc gov, UC at 1200 and the rest like Shan89 sayed in previus page ... Unthinkable how much improves in performance and batt life <3 Xmister and Shan89
Click to expand...
Click to collapse
bienjie said:
U r superb dude! U are gifted! Damn u r sooo good in this....(^~^)/
Sent from my HTC One X using Tapatalk 2
Click to expand...
Click to collapse
kkarnaout said:
im using the the new kernel with viperx 3.4.0 and all pmc settings, phone is amazing FB app is working i didnt see any problem till now this is the best kernel i tried till now from all the passed weak!
All thanks go to Xmister and Shan89
Click to expand...
Click to collapse
-------------------------
---------------------------
===============================================================================================
How to use FULL PMC setup.
Simple:
1st: thing to do enable 2d GPU rendering in developers options.
2nd: lower your CPU max freq to 1000mhz ! Yes 1000 mhz ( you wont feel much of a difference in terms of fluidity except when loading apps )
3rd: Use RoW or Sio scheduler ( for more info about these schedulers look at my signature guide theres explanation of every scheduler we use )
4th: Undervolt your CPU - here are the SAFE FREQS for these variants v0 - 50 , v1/2 , -75 , v3 - 100/125 (this are safe you could do more on some freqs)
5th: This is for those who don't play GAMES Underclock the GPU freqs here are the freqs you should use:
2d UC = 304 304 304 304 267 267 200 200
3d UC = 267 267 267 267 200 200 200 200
6th: Those who game you SHOULDN"T play with GPU UC only CPU UC.
Important: Make sure you use Trickster MoD app from playstore when using XM kernel for tuning and another vital thing to do is set in trickster app Multicore Power saving to 2 This will try to use as long as it can 1/2 cores unless desperate need for 4 cores.
A tip how to speed up loading times of the apps:
Since we have boost at 500 mhz if you open some app , lets say for example *Trickster MoD* after clicking on it you can hold your finger on the screen and move it in any direction , that way your CPU wont be locked onto 51 MHZ freq it will be on either 620 / 640 mhz ( boost freq ) or at MAX freq you set for CPU ( 700 if you use full PMC setup )
Final words:
PMC will try to force your phone spend 90% of the time in LP (low power) cores which barely use any power , if you do use PMC full setup the only real battery drain you'll have is your SCREEN and when in desperate need for some boost it will use your highest CPU freq you set.
Note:
Don't complain about bad speed etc etc etc , this governor is made only and only for BATTERY LIFE with basic usage.
And of course if this governor is *too laggy/slow* you can always use original *Smartmax governor*
NEW - SetCPU profiles setup balance v2 = SENSE =:​
SENSE SetCPU profiles v2
This profiles fixed every little issue that exited in 1st release , just make sure to re-read the guide , some things has changed.
Anyway to make some kind of *changelog* if i can even call it like that this is what has got fixed / added:
Gaming works perfect now
Added profile for 2d games
Added profile for safety ( over heating to prevent it 2 steps )
Added more apps into profiles
Changed freqs on some things for better performance/battery life
Some other stuff i can't remember right now lol
Click to expand...
Click to collapse
Q) What does this do ?
A) Makes your phone smarter , boosts it when needed and downscales CPU freqs when not needed , It changes Governor / scheduler / CPU Freqs / .
Improves Loading times alot vs old PMC setups. The default loading times speed varies between 1100 mhz and 1300 mhz now.
Example:
Sense launcher: is set to use 640 MAX Cpu freq with smartmax governor + SiO scheduler.
Messaging: email / sms / gmail / etc = It will switch governor to PMC v7 ( Interactive version ) Boost max CPU freq to 840 and use Deadline scheduler so it makes sure it's liquid smooth and rotation works perfect.
Gaming: When you hit some , in my case NFSMW , MC4 , RR3 it will change to interactive governor + Row Scheduler and use MAX Cpu FREQ 1300mhz.
HOW TO SETUP ( Important ! )​
1st: download SetCPU ( google it if you can't buy it you should be able to find it for free)
2nd Set max CPU Freq to 1300 and min freq to 51
3rd: Go to trickster and do the following:
Trickster settings:
PMC Governor = Leave as it IS
Scheduler = SiO
Multicore power saving = 0
Gpu Max freq = 520
Smartmax Governor settings = Change the settings to PMC V7 BATTERY Settings ( This is important thing to do if you want the profiles to work )
Undervolting - UPDATED:
Variant 1/2 = freqs 51/1250 undervolt - 100 ( if is unstable for you use -75 ) Freqs 1300-1500 Undervolt - 50 ( if is unstable use -25 )
Variant 0 should use 25mv more compared to v1/2 and variant 3 can do additional -50 on freqs 51/1250 and 1300/1500 freqs -25 compared to variants 1/2.
And last thing to do is *Set on boot / enable* - Do this only if UNDERVOLTING doesn't cause any reboots for you , it shouldn't anyway.
4th: copy my SetCPU Profiles to your SDcard and open SetCPU App , load the profiles and Apply them , make sure to tick * Enable Profiles * Also on the *MAIN* settings for CPU / Governor / Scheduler tick *Set on boot* and finally @ *Governor* also tick *Set on boot & Set With profiles*
5th: Download greenify app from playstore:
Set greenify app at your likings but make sure you don't put Trickster and SetCPU Apps in there.
6th: Downlaod LagFix (Fxstreem) App from playstore as well. Use this app once a day or whenever you like it.
Note: This will work ONLY With XM kernel unless another kernel dev includes PMC Governor in their kernel.
Tips:
[*]New - for MAX Speed when not using apps listed in profiles set in trickster & SetCPU Max Freq 1300 ( For absolute max performance 1500 ) min 51 INTERACTIVE governor and DEADLINE Scheduler. What will this do: Well simply it'll use max freq 1300 / 1500 depends on your choice whenever you're using something that is not listed in the profiles E.G. when you hit *Settings* it'll use interactive + deadline , same goes for other things that are not listed in the profiles.
[*]If you do full reboot make sure to open SetCPU app so profiles start working after the reboot.
[*]For 2d games *temple run* Etc just add them into *2d gaming profile*
[*]Tip for heavy 3d games sucha are Mc4 NFSMW , RR3 etc etc , i've set on 1300 max CPU freq so we avoid heat etc , note that those games are on MAX DETAILS for me and i don't have laggs so you guys who use those games without those details you should be fine in fact you can change max freq from the profile onto 1200 if you like. If you play some other 3d heavy games just add them in *Gaming* profile.
[*]A Tip for gaming with low details: Change the max freq from my profiles to 1100/1000 , i played NFSMW on max details with some FPS Drops on 1000mhz freq.
[*]@Those who use more social apps then facebook , simply add those apps in my profile where is facebook. If you use another messaging apps simply add them to my messages profile. Do the same to the other apps that you use which are similar to the apps in my profiles.
Click to expand...
Click to collapse
@Those who don't game at all and want maximum battery life they can get , also this would be useful for those who game as well , just apply those 2 things after you done with gaming:​
Go to trickster app and do the following:
Max Gpu speed = 416
Multicore power saving = 2
If you want even more battery life visit my signature theres everything else you need to know on the post 2.
IMPORTANT: I've set on every profile *Notification* just so you guys can see it does it work , for those who want to remove it simply do this:
SetCpu > Profiles > click on the profile > Next > Untick *Show a notification* and that's it , do the same for other profiles.
Click to expand...
Click to collapse
If by any chance you don't see notifications after first time applying my profiles make sure you enable *Set on boot * where ever i wrote above and reboot your phone. That should fix it.
If anyone experience any issues ETC please lemme know.
AOSP/AOKP/CM SetCPU profiles + PMC v7 Setup - NEEDS UPDATE DON"T USE THEM - Will add them in few days when i switch to AOSP.:​
DOWNLOAD THE AOSP PROFILES HERE​
Download these tools 1st:
SetCPU app
Trickster app
Greenify app
Trickster settings:
Choose smartmax governor and apply these values in governor control:
Boost_freq: 620
Ideal_freq: 340
max_cpu_load: 90
min_cpu_load: 50
touch_poke_freq 620
Click to expand...
Click to collapse
Apply the values
Scheduler:
Deadline
Click to expand...
Click to collapse
Cpu settings:
Max freq 1000
Min freq 51
Click to expand...
Click to collapse
After that change to PMC Governor and apply.
Next thing to do swipe to specific settings
Smartdimmer: ON
Multicore power saving 2
GPU Max freq: 416
Undervolt how much you can.
Click to expand...
Click to collapse
APPLY all these and SET ON BOOT
Next thing to do open SET-CPU app make sure it's showing same CPU freqs as on trickster and same governor and scheduler.
Set on boot
Go to PROFILES and load my AOSP profiles after that tick Enable profiles
Important:
This profiles will work ONLY on AOSP rom and ONLY on XMkernel since other kernels don't have PMC interactive governor.
After applying the proffiles go to LAUNCHER and if you don't USE NOVA remove NOVA from that profile and ADD your launcher that you use.
TIPS / IMPORTANT:
[*]After you apply the PROFILES and you don't use INVERTED BLACK FACEBOOK APP delete that from profile and add the facebook app you use.
Click to expand...
Click to collapse
As for your own apps just go to profiles and add those apps into profile you like.
Click to expand...
Click to collapse
Lastly Thx to Xmister for the great kernel and his devhost link for uploading the profiles.
Heres the screenshoots from ICJ 2.8.1 with PMC v7 battery/interactive SetCPU Profiles:
----------
--------
-------
==================================================================================================
Note:
You shouldn't really relay and trust benchmarks at least not in antutu and quadrant , the most reliable and most accurate benchmark we have is Epic citadel , almost every single time same results. and 52.6 is quiet high result for sense rom. Btw for those who care s3 scores average 44-45fps on epic and note 2 scores average 46-47fprs.
]]=====>>> Wakelocks guide thx to Goku80 <=====[[
This is for those who have bad battery life !
http://forum.xda-developers.com/showthread.php?p=38629490#post38629490
Guys who follow this guide and use it , Please leave us the feedback about your battery life and rom you used. It's gonna be easier for us to locate the best battery life RoM, Thx in advance ! Also rating the thread would be nice
And those who USE this guide but apparently *doesn't help them* please post a replay with what you did and what happened, your battery/undervolting , whatever that came out from this guide, theres a chance you didn't do something RIGHT so we can try and help out. THX !
ADDITIONAL INFO - UPDATE:
I tought it would be nice to add some info about schedulers , and governors so ppl better understand what they are and what they do
Update: added governor info.
Update: added info about MpDecision and Cpu Quiet per request..
---------------------------------------------------------------------------------------------------
Governors:
- OnDemand Governor:
This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.
OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.
This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.
- Performance Governor:
This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).
- Interactive Governor:
Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.
Unlike OnDemand, which you'll recall scales clockspeed in the context of a work queue, Interactive scales the clockspeed over the course of a timer set arbitrarily by the kernel developer. In other words, if an application demands a ramp to maximum clockspeed (by placing 100% load on the CPU), a user can execute another task before the governor starts reducing CPU frequency. This can eliminate the frequency bouncing discussed in the OnDemand section. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. This is another pro-battery life benefit of Interactive.
However, because Interactive is permitted to spend more time at maximum frequency than OnDemand (for device performance reasons), the battery-saving benefits discussed above are effectively negated. Long story short, Interactive offers better performance than OnDemand (some say the best performance of any governor) and negligibly different battery life.
Interactive also makes the assumption that a user turning the screen on will shortly be followed by the user interacting with some application on their device. Because of this, screen on triggers a ramp to maximum clockspeed, followed by the timer behavior described above.
- Suggestion : Use this governor (Interactive) for GAMING , it's the best when using Xm kernel for this purposes +deadline or Row scheduler.
- Smartmax
Long story short if you want crazy battery life USE this governor with either noop/sio/row governor, depending on what you want , read about schedulers under and chose what fits your needs.
- PMC ( Performance may cry )
ok so i made this governor based on Smartmax except it's heavily tweeked for better and maximum battery life you can get out of HOX.
- TouchDemand:
This governor pretty much do what the name says, boosts cpu freqs by touches, this one actually can be pretty great for battery life if you underclock the CPU imho and use max 2 cores, you can do that by doing this: edit touch_min_cores under governor tuneables and set 2
Anyway i still prefer *SmartMax* for battery life. But up to you to test and find out.
As for other governors like : Conservative and powersave , i wont be adding info about them since i doubt anyone ever uses them , all they do is take more space in the list
-----------------------------------------------------------------------------------------------------------------------------------------------------
Schedulers:
- Noop:
This scheduler assumes I/O performance optimization will be handled at some other layer of the I/O hierarchy , on the more simple way this scheduler is MOSTLY used for battery life since it's slow - it raises freqs slower then other schedulers.
- Deadline::
This scheduler attempt to guarantee a start service time for a request It does that by imposing a deadline on all I/O operations to prevent starvation of requests. It also maintains two deadline queues, in addition to the sorted queues (both read and write). Deadline queues are basically sorted by their deadline (the expiration time), while the sorted queues are sorted by the sector number. To make it more simple this scheduler raises freqs much faster then noop and keeps them longer active then noop which means more battery drain ( not by much anyway ) and faster I/O as well the gaming should be the best with this scheduler.
- SIO:: - ( my favorite )
This scheduler in simple words is basically this : It's a mix of noop and deadline schedulers , noop is more for battery while deadline is more for performance , and sio is perfect balance between them ^.^ to be more specific it's more like almost having noop+deadline activated at the same time.
- ROW::
ROW: stands for "READ Over WRITE* The ROW scheduler is in favor for user experience upon everything else (means it should make things stupidly smooth ),so that why ROW scheduler gives READ IO requests as much priority as possible. Usually it¡¯s a single thread or at most 2 simultaneous working threads for read & write. Favoring READ requests over WRITEs decreases the READ latency greatly. == Even more speed.
The main idea of the ROW scheduler is // == If there are READ requests in pipe - it WILL dispatch them but don't starve the WRITE requests too much.
Also this scheduler is much better optimised for our phones since in the smart phones we use flash memory and not hard drives.
Finally : Think of this scheduler as a mix OF deadline+ Performance governor put in scheduler while you can use another governor e.g. Smartmax. It's quiet fast scheduler and even good for daily usage without much of impact on the battery life.
Hope this prevents the question about schedulers / governors and which one to use
And a tip: Sio scheduler should be PERFECT with smartmax governor for battery life + speed , in fact it's the best scheduler if you guys want speedy performance while saving the battery life.
-------------------------------------------------------------------------------------------------------------------
MPdecision:
MORE INFO >
For us mpdecision is a cpu hotplug system, which replaced the default nvidia hotplug system. It was written by showp1984(Dennis Rassmann).
It's more configurable, better for battery life, and much much better for gaming.
Cpu quiet:
- Cpu quiet driver regulates the cores by them acting more syncronized. they scale up n down in a more uniform fashion. therefore it gets better battery life without losing performance. You can't manage each core like with morrifics. so the cpu quiet driver is doing all the regulating. So the cpu quiet driver basically replaced hotplugging as far as cpu core management goes.
- In simple words it should give better battery life.
Good thread mate!
I know people have been looking for a guide for ages.
Goku was gonna do one in fact, guess you beat him and me to it.
geko95gek said:
Good thread mate!
I know people have been looking for a guide for ages.
Goku was gonna do one in fact, guess you beat him and me to it.
Click to expand...
Click to collapse
Lol thx, i was actually waiting for you or him to make one, i guess i got tired of waiting and besides that i saw tons of questions in past few days about *which kernel , rom* are the best so i guess they have their answer now.
Oh and if you have anything to add that i might forgot or anyone else please feel free to do so.
Edit - I'll probably add new screenshots when i manage to waste this 9% i got left, this battery refuses to die, i feel like i have note in my hands lol.
Shan89 said:
Lol thx, i was actually waiting for you or him to make one, i guess i got tired of waiting and besides that i saw tons of questions in past few days about *which kernel , rom* are the best so i guess they have their answer now.
Oh and if you have anything to add that i might forgot or anyone else please feel free to do so.
Click to expand...
Click to collapse
I'll have a think, I've got a little battery guide of my own that I wanted to write.
I'll have to see if wilky will want to put it in the OP, if not then you can use it in this thread.
Also I'll talk to wilky and see if he wants to add a link to your thread when we next edit the OP.
geko95gek said:
I'll have a think, I've got a little battery guide of my own that I wanted to write.
I'll have to see if wilky will want to put it in the OP, if not then you can use it in this thread.
Also I'll talk to wilky and see if he wants to add a link to your thread when we next edit the OP.
Click to expand...
Click to collapse
Sure , i'd be honored :good:
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
What is maxwen governor? Where can i find it?
Sent from my HTC One X using xda app-developers app
jarein95 said:
What is maxwen governor? Where can i find it?
Sent from my HTC One X using xda app-developers app
Click to expand...
Click to collapse
Its called Smartmax and its included in NCX and XM kernels.
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
geko95gek said:
Its called Smartmax and its included in NCX and XM kernels.
Click to expand...
Click to collapse
xD jajajaa is what I am using since yesterday jajajaa but i didnt recognised it with the name of maxwen!! Jajajajaa
Sent from my HTC One X using xda app-developers app
jarein95 said:
xD jajajaa is what I am using since yesterday jajajaa but i didnt recognised it with the name of maxwen!! Jajajajaa
Sent from my HTC One X using xda app-developers app
Click to expand...
Click to collapse
Maxwen is the nick of the guy who wrote it.
jarein95 said:
xD jajajaa is what I am using since yesterday jajajaa but i didnt recognised it with the name of maxwen!! Jajajajaa
Sent from my HTC One X using xda app-developers app
Click to expand...
Click to collapse
Lol, anyway looks like i'll have to edit OP so ppl know the name of the governor
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
If you use the repacked xm I posted it's set to smartmax automatically
Sent from my HTC One X using xda premium
mwilky said:
If you use the repacked xm I posted it's set to smartmax automatically
Sent from my HTC One X using xda premium
Click to expand...
Click to collapse
Yeah i did use your repack cuz of original s2w Also cuz of Smartmax as default on boot. thx for that.
Btw OP updated with final battery results. Ppl i think we have the perfect match here about battery + gaming + speed. It's simply revolution of HoX. And all thx to everyone who developed for HoX sucha amazing stuff, and we must not forget things can get only BETTER for hox from now on not worse, so we might expect even better stats.
Just a small comment on smartmax
Setting boost_freq has actually not much of an effect
This is only used for the "external" boost interface of smartmax
This can be used e.g. from the android power module to boost
the cpu if required. But thats of course not implement in most roms
So only touch_poke_freq has an effect since this is use to boost
on input events from the touchscreen
maxwen said:
Just a small comment on smartmax
Setting boost_freq has actually not much of an effect
This is only used for the "external" boost interface of smartmax
This can be used e.g. from the android power module to boost
the cpu if required. But thats of course not implement in most roms
So only touch_poke_freq has an effect since this is use to boost
on input events from the touchscreen
Click to expand...
Click to collapse
Thx on the correct info.
Edit - Benchmarks updated.
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
Hi. What app did u use to change governers? Any preferred?
Sent from my HTC One X using XDA Premium HD app
gilbertvpuen said:
Hi. What app did u use to change governers? Any preferred?
Sent from my HTC One X using XDA Premium HD app
Click to expand...
Click to collapse
Hello , for changing the governors and schedulers undercloking , overclocking and changing the governor values i use SetCpu you can find it on apkmania site, as for undervolting and further more tweeking i'm using System tuner , you can find that one on the playstore. Btw it's in the Op
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
Shan89 said:
Hello , for changing the governors and schedulers undercloking , overclocking and changing the governor values i use SetCpu you can find it on apkmania site, as for undervolting and further more tweeking i'm using System tuner , you can find that one on the playstore. Btw it's in the Op
Click to expand...
Click to collapse
Hi shan,thanks. One last thing. I noticed you have changed your fonts, im also in renovate rom with xm106. I dont see any options for that. Can u guide me too a link? Cnt find it in themes/ add ons thread.
Sent from my HTC One X using XDA Premium HD app
Re: The ULTIMATE BATTERY LIFE+ GAMING PERFORMANCE setup/guide
Thnks shang, will try it in SkyDragon rom to see how it works, as Base 3.17 its better, hope to get better results,
Btw.. Kernel Devs makes our roms better.
Cheers
SkyDragon Team© No Kangy rom allowed.

best kernel adiutor settings for moto g6 play

I have a rooted moto g6 play and I read that using kernel adiutor to overclock this phone will make it a lot faster. The problem is, I have no idea what to set the settings to. If any of you have a moto g6 play, could you tell me which settings would be best or the settings you have? Thanks
Here's the settings I use. I was actually planning on making a guide that would cover this very subject -- however, I've been inundated with "life". As my friend told me, "Sometimes Life -- Lifes you." Right?
Anyways. This setup I'm about to describe works absolutely perfectly for me... With that said, it *may* not be the best for everyone. I'm not a multi-tasker, and I run an extremely lean operation for maximum power availability. So, if you're an avid multi-takser, you'll probably want to stay away from this. However, if you do one thing at a time and want maximum battery life mixed with moderate speed boost -- you'll love this.
I use Kernel Aduitor primarily because I like the interface better than Ex Kernel Manager. With that in mind, I'll just go down the list using Kernel Auditor's app... I do run Ex-KM as well, but only for 1 particular setting which I'll cover when I get there.
Lets begin!!
Prereq Software: L-Speed by Paget, Kernel Auditor, and ExKernel Manager.
Using Kernel Auditor:
1) --CPU--
a)Max 1401, Min 960.
b)Conservative Governor (w/ 50 down, 3 freq step, 1 ignore nice load, 1 sampling down factor, 66666 for both sampling rates, 95 up threshold)
c)Schedule workloads on awake cpus (ON!)
2) --GPU--
a)Max Freq 650 (If gaming, or graphically intense use -- otherwise I go to 484, and even 400)
b)Min Freq 270
c)Governor (I typically run Simple On Demand for daily use, powersave for battery, and bump up performance and a higher frequency of 650mhz if I need it)
3) --I/O--
a)NOOP Scheduler
b)Not tunable.
c)read ahead -- honestly, I've tried every single setting using different benchmarks, and it appears to make a little difference. I simply use 512kb as my default. Feel free to adjust accordingly if you use your phone in a way that benefits from it.
d)I keep all three settings turned off -- rotational, stats, and add random. IO Stats is on by default I think, by turning it off it will give a very minimal boost in performance. But I'll take every inch I can get out of it... ya know?
e)RQ Affinity is 1 by default, I use 2.
4)LMK
25, 50, 100, 175, 275, 400 (Again, this is purely because I run a lean operation with minimal multitasking. Feel free to adjust to your needs)
5)Virtual Memory (This is a nice performance boosting tuneable screen)
Dirty: 90
DirRat: 50
Expire: 10000
Writeback: 25000
Min Free: 15000kb
oom killing: 1
Overcommit: 100
Swappiness: ZERO!!
VFS Cache: 200
Laptop: ZERO
Extra Free: 10000
And the best thing I've done for my phone, I do believe: ZRAM ----> ZERO! Zram is a waste of resources and sucks life out of your phone with its constant encryption and decryption routine. With 3gb of ram, and a properly tuned LMK --- you'll get a noticeable boost in smooth performance here. I hate Zram!
6) Entropy
I use light settings here 64/192.
--------------------------------------
Now, EX-Kernel Manager... I only use it for one setting. By default, when the GPU is at idle -- it hums along at 400mhz. You can adjust this in ExKM down to a true idle of 270mhz. You'll not sacrifice any performance, but may get a small bump in battery life.
-------------------------------------
L-Speed is one of my favorite apps I've ever used. Tons of useful scripts that really make a difference.
Upon initial setup, just kinda breeze through the opening screens. Don't use one of the preprogram'd tunes. Here's what I use specifically (If its not listed on this list, that means its either disabled or default and thats where I want to keep it. :
Main Tweaks:
Disable Debugging - ON
Panic - OFF
Sleeper Optimize: ON
Flag Tuner: OFF (I used to run ON, but it developed lagginess, and turning it back off appeared to correct this. Feel free to try either for your personal use)
Improved Scrolling: ON
Liquid Smooth UI: ON
Animations: ZERO across the board.
Battery:
Battery Improvement - ON
Doze Optimize - ON
Aggresive Doze - ON
CPU:
Gov Tuner - DISABLED (or else it will cause you to lose your settings in Kernel Auditor)
CPU Optimizer - ON
LNET:
Net Buffers - BIG
RIL Tweaks - ON
TCP Tweaks - ON
Net Speed+ - ON
Wifi Scanning OFF
DNS Optimizer - ON (uses google DNS, or maybe cloudfare now.. but its super smooth)
IO Tweaks:
Tuner - OFF
Boost - ON
Extended Queue - ON
Part Remount - ON
Disable IO stats - ON
RAM:
MAnager - Default (for me, you may need another setup if you multitask)
Don't Keep Activities - ON
Dynamic VM: OFF
Skip the next 4 or 5 options, leave disabled or default.
Heap Optimize: ON
OOM Killer: ON
Dump Tasks: OFF
ZRAM OPTimizer: OFF
Ftrim
DO IT. Then set to run on boost, and schedule it for every 6 hours or so to keep it running effecient and smooth.
Last thing... I go to the developer menu under settings within the operating system, and turn on "Force GPU to run 2d operations".
-------------
I get incredible battery life at these settings. A super snappy phone with minimal lag. And if I need a quick jolt of power, I just crack up the CPU and GPU to max settings.. and I'm good to go!
Enjoy.
Thanks for reading. Sorry so long.
bubbyj said:
Here's the settings I use. I was actually planning on making a guide that would cover this very subject -- however, I've been inundated with "life". As my friend told me, "Sometimes Life -- Lifes you." Right?
Anyways. This setup I'm about to describe works absolutely perfectly for me... With that said, it *may* not be the best for everyone. I'm not a multi-tasker, and I run an extremely lean operation for maximum power availability. So, if you're an avid multi-takser, you'll probably want to stay away from this. However, if you do one thing at a time and want maximum battery life mixed with moderate speed boost -- you'll love this.
I use Kernel Aduitor primarily because I like the interface better than Ex Kernel Manager. With that in mind, I'll just go down the list using Kernel Auditor's app... I do run Ex-KM as well, but only for 1 particular setting which I'll cover when I get there.
Lets begin!!
Prereq Software: L-Speed by Paget, Kernel Auditor, and ExKernel Manager.
Using Kernel Auditor:
1) --CPU--
a)Max 1401, Min 960.
b)Conservative Governor (w/ 50 down, 3 freq step, 1 ignore nice load, 1 sampling down factor, 66666 for both sampling rates, 95 up threshold)
c)Schedule workloads on awake cpus (ON!)
2) --GPU--
a)Max Freq 650 (If gaming, or graphically intense use -- otherwise I go to 484, and even 400)
b)Min Freq 270
c)Governor (I typically run Simple On Demand for daily use, powersave for battery, and bump up performance and a higher frequency of 650mhz if I need it)
3) --I/O--
a)NOOP Scheduler
b)Not tunable.
c)read ahead -- honestly, I've tried every single setting using different benchmarks, and it appears to make a little difference. I simply use 512kb as my default. Feel free to adjust accordingly if you use your phone in a way that benefits from it.
d)I keep all three settings turned off -- rotational, stats, and add random. IO Stats is on by default I think, by turning it off it will give a very minimal boost in performance. But I'll take every inch I can get out of it... ya know?
e)RQ Affinity is 1 by default, I use 2.
4)LMK
25, 50, 100, 175, 275, 400 (Again, this is purely because I run a lean operation with minimal multitasking. Feel free to adjust to your needs)
5)Virtual Memory (This is a nice performance boosting tuneable screen)
Dirty: 90
DirRat: 50
Expire: 10000
Writeback: 25000
Min Free: 15000kb
oom killing: 1
Overcommit: 100
Swappiness: ZERO!!
VFS Cache: 200
Laptop: ZERO
Extra Free: 10000
And the best thing I've done for my phone, I do believe: ZRAM ----> ZERO! Zram is a waste of resources and sucks life out of your phone with its constant encryption and decryption routine. With 3gb of ram, and a properly tuned LMK --- you'll get a noticeable boost in smooth performance here. I hate Zram!
6) Entropy
I use light settings here 64/192.
--------------------------------------
Now, EX-Kernel Manager... I only use it for one setting. By default, when the GPU is at idle -- it hums along at 400mhz. You can adjust this in ExKM down to a true idle of 270mhz. You'll not sacrifice any performance, but may get a small bump in battery life.
-------------------------------------
L-Speed is one of my favorite apps I've ever used. Tons of useful scripts that really make a difference.
Upon initial setup, just kinda breeze through the opening screens. Don't use one of the preprogram'd tunes. Here's what I use specifically (If its not listed on this list, that means its either disabled or default and thats where I want to keep it. :
Main Tweaks:
Disable Debugging - ON
Panic - OFF
Sleeper Optimize: ON
Flag Tuner: OFF (I used to run ON, but it developed lagginess, and turning it back off appeared to correct this. Feel free to try either for your personal use)
Improved Scrolling: ON
Liquid Smooth UI: ON
Animations: ZERO across the board.
Battery:
Battery Improvement - ON
Doze Optimize - ON
Aggresive Doze - ON
CPU:
Gov Tuner - DISABLED (or else it will cause you to lose your settings in Kernel Auditor)
CPU Optimizer - ON
LNET:
Net Buffers - BIG
RIL Tweaks - ON
TCP Tweaks - ON
Net Speed+ - ON
Wifi Scanning OFF
DNS Optimizer - ON (uses google DNS, or maybe cloudfare now.. but its super smooth)
IO Tweaks:
Tuner - OFF
Boost - ON
Extended Queue - ON
Part Remount - ON
Disable IO stats - ON
RAM:
MAnager - Default (for me, you may need another setup if you multitask)
Don't Keep Activities - ON
Dynamic VM: OFF
Skip the next 4 or 5 options, leave disabled or default.
Heap Optimize: ON
OOM Killer: ON
Dump Tasks: OFF
ZRAM OPTimizer: OFF
Ftrim
DO IT. Then set to run on boost, and schedule it for every 6 hours or so to keep it running effecient and smooth.
Last thing... I go to the developer menu under settings within the operating system, and turn on "Force GPU to run 2d operations".
-------------
I get incredible battery life at these settings. A super snappy phone with minimal lag. And if I need a quick jolt of power, I just crack up the CPU and GPU to max settings.. and I'm good to go!
Enjoy.
Thanks for reading. Sorry so long.
Click to expand...
Click to collapse
Thank you for taking your time to write that out! I really appreciate the help! Once again, thank you!
@buddyj excellent piece of information there! Keep up the good work!
Sent from my Moto G6 Plus using Tapatalk

Red Magic 5G MOD Kernel GPUOC 900/940mhz +battery 1.4 STABLE!

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
*** NOTE THAT 3.16 NA OR 4.13 Red Magic 5G SPECIFIC ROMS SHOULD BE USED WITH THIS KERNEL! THE COMBINED ROM (WITH RM5S) HAS UPDATED KERNEL CODE THAT IS NOT FULLY COMPATIBLE AND NUBIA HAS NOT UPDATED THEIR SOURCE CODE ***
*** Please click Thanks (Thumbs up icon) on my post here if you like my kernel and rate the thread 5 stars, then just use it and enjoy - if you want to send me a beer or two feel free - you don't have to use PayPal - Revolut and Amazon.com (USA) gift cards avoid fees. I like to hear from happy users I hope you are glad that you have the fastest phone in the world currently. The active cooling in this device is utilized to the extreme with MOD kernel, meanwhile your battery usage will be much improved at the same time. How? Well, that's all in the source code, free for all to fork it on GitHub and modify to your liking. Just don't forget to credit me and the many great devs that made the improvements possible... without them, there would be no MOD kernel. This is just a hobby of mine and I like to produce a nice product that all can enjoy. I'm also quite friendly and although I may tell you no I won't add that feature (such as network hacking tools), I won't hold anything against you for asking. I have not been compensated other than by some generous folks on my Telegram channel, so this whole project is basically self funded. Red Magic will not support it, unfortunately, but you can if you feel the improvements are worth it. I believe they are, but I come from a biased point of view as the sole developer for RM5G ***
********************************************************************************************************************************************************************************************************************************
NOTICE: YOU ASSUME FULL LIABILITY FOR ANYTHING THAT MAY HAPPEN TO YOUR PHONE USING THIS KERNEL. ALTHOUGH IT WORKS 100% ON MY PHONE, IT MAY NOT WORK THE SAME ON YOURS. THE PROCESS OF ROOTING A PHONE AND INSTALLING A CUSTOM KERNEL ALWAYS HAS RISKS, SO IF YOU ARE NOT COMFORTABLE ASSUMING THOSE RISKS, DON'T INSTALL THE KERNEL! THIS IS A TYPICAL DISCLAIMER FOR CUSTOM KERNELS I HAVE FOUND NO BUGS WITH IT AT ALL. USERS ON CN, GLOBAL, AND NA ALSO HAVE NOT FOUND ANY PERFORMANCE ISSUES OR BUGS (DO NOT USE V7.14 or V8.11) IF YOU DON'T KNOW WHAT YOU ARE DOING, IT'S BEST TO REMAIN STOCK. OR JOIN THE TELEGRAM GROUP, AND GET SOME REAL HELP.
********************************************************************************************************************************************************************************************************************************
Easy root method: https://forum.xda-developers.com/nu...nner-tutorial-unlock-bootloader-t4131585/amp/ although I suggest still using Magisk 20.4 for root.
Note: if you've already rooted and want to upgrade, people have had success saving the kernel as boot.img and TWRP as recovery.img in SmartPack, vbmeta skip as vbmeta.img and placing into the ROM update.zip using MT Manager (a root browser) and saving the updated file. Then do a Settings / System Update / click the 3 dots / local update and select your modified file. In fact I upgraded from 3.13 to 3.16 NA ROM without losing anything this way. Now for normal installation:
Custom kernels require root and Magisk to be installed. This is due to the signature not being signed by Red Magic (the company) itself. Following the above method you will still pass SafetyNet and most apps will work without trouble. If you have a specific app that detects root, well, Magisk Hide the app from Magisk Manager and see if that fixes it. You should also Hide Magisk Manager from various forms of detection (under Settings). Last case is to move the installation of Magisk under a random directory (which I have not had to do and all my banking apps still work), only if the root detection methods used by your app providers are more picky.
MOD KERNEL 1.4 STABLE:
RELEASE NOTES:
Block mode I/O has been changed to Multi-Queue from Single-Queue so your default scheduler is now MQ-deadline (credits to PappaSmurf, excellent kernel dev). You can choose between mq-deadline, kyber, and none in a kernel manager under I/O scheduler. From my benching with Androbench, it doesn't make much difference which one you use. Some have parameters you can tweak. None literally means no scheduler which is fine on an SSD, and has no overhead if you want to select it in a kernel manager. I always recommend SmartPack. To get settings to stick you Toggle "Apply on Boot" and it will go to what you've selected after 5-10 seconds on the next boot.
All debugging has been turned off completely on BBRv2 - thanks to PappaSmurf (I missed a few spots), and debug can't be turned back on from the userspace now. BBRv2 is selected as the default TCP algorithm which users have explained as a "no-lag" algorithm while gaming. It's just generally a fast algorithm all around. For me it works great, but you can still choose from many different algorithms in a kernel manager if you want to.
In SmartPack / Misc / TCP Congestion Algorithm, you have many choices: reno / bbr / bbr2 / bic / cdg / cubic / dctcp / westwood / highspeed / hybla / htcp / vegas / veno / scalable / lp / yeah / illinois. A SmartPack script is included below you can add in SmartPack to show the true TCP algorithm as it will always show Reno (a bug also shared by FK kernel manager). Below it's called Check_TCP.sh just go to SmartPack / Script Manager / Import / Check_TCP.sh. Afterwards, click Execute to see the active algorithm. If you set it on boot, this is the algorithm that will run, despite what the field says in Misc.
Battery is running very well on normal usage I'm getting around 7.5% active screen on drain over 7 hours and <0.7% screen off drain over 13 hours at 90hz screen setting. This is with actively using the phone for multiple "normal" purposes, reading emails, browsing websites with Chrome, reading news, streaming videos, etc. various shopping (Amazon/eBay) and tracking, Reddit feeds and live video, and other random "daily" tasks, up to 10 apps open at a time. Gaming of course will drain more, as will 144hz. I also have dark mode enabled in Settings. To get idle drain down I disabled 3 additional wakelocks that were causing high screen off drain, and so far I haven't seen an issue with blocking them. I also removed wakelocks that no longer exist since the Boeffla WL Blocker default list was created (it was quite old) so it now should be relevant for this device, with no interaction on the users part to disable anything via a kernel manager. Still, in SmartPack you will see a Wakelocks menu in case you install an app that causes idle drain to rise, this can be used to find and block wakelocks causing the problems. It can sort by wakeups and also by time. As it states though, you should be very careful what you disable. There can be unintended consequences and most wakelocks are not well documented as to what they actually control.
Dynamic Stune Boost is entirely removed from the kernel code now, as I didn't see any benefit from using it with this kernel.
Don't forget Dynamic Fsync is hidden under Misc in SmartPack which if you turn on will speed up your SQLite speeds. AnTuTu will penalize you for this, ignore it, your phone will be faster - but I leave it off by default. Androbench will show the true memory benefit. It is significant if an app does a lot of operations on databases. Journaling for the database is held in memory until the screen is off, then it is written. Although there is a chance of a data loss or corruption with this on if the device were to crash, it is safer than just turning off fsync. If you have any unstable apps, just leave it off - better to be safe. On a solid system though, you may notice better performance.
Also remember under SmartPack / GPU there is AdrenoBoost - it is set to low. You can alter to medium or high to get faster transfer between GPU frequencies, although it has worked great for me the way I use the phone. For you another setting may suit you better. Recall RedMagic OS only allows several frequencies which I spaced out as well as possible at 305mhz, 400mhz, 525mhz, 670mhz, 800mhz, and either 900 or 940mhz depending on the version you installed.
Overall I'm very satisfied with this kernel build and don't plan on adding or subtracting anything from it for the time being. It does what it should do, gives solid performance, and good battery life. My last score on AnTuTu setup with defaults 12GB/256GB was 682K which currently is still the top performing phone out there - running at 940mhz GPU. Not all phones can handle 940mhz so use 900mhz if yours cannot. If there are enough requests for an intermediate build (say 925mhz) I can add one later off the same code base. Also note in releases there are "gaming" builds that don't keep track of CPU times at each frequency, which was a request by users to remove any potential lag while gaming. I run the non gaming version, useful if you want to tweak battery usage, but nonetheless, both versions are there for you to use.
I'm on Telegram t.me/NubiaRedMagic5G_Mods as long as I have the phone. Which will be quite a while if Red Magic / Nubia decides to fix N41 5G in the USA.
Also note that all the features of this kernel (besides ones specifically added by me) are the creation of other developers whose contributions are all notated in the kernel source code. Some of the developers that have contributions here or helped me in some fashion: Resurrect88, DD3Boh, PappaSmurf, kdrag0n, Ayrton990, Flar2, Lord Boeffla, plus many more across the globe. Without them, I wouldn't be making any kernels! And I'm sure there are many other devs I've forgotten to mention, I thank all you guys for your help and support.
MOD 1.4 Download Link:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.4
PRIOR RELEASES BELOW:
8th Release:
MOD KERNEL 1.35-BBRv2 STABLE:
RELEASE NOTES:
This is an intermediate release - I realized that the prior release was draining far more battery than it should, and I found the source was debug related code in BBRv2 from Google. So this is the updated kernel that gives you battery life like before this TCP algorithm was added.
CONFIG_CPU_FREQ_TIMES=y has also been added so you can see in a kernel manager how much time is spent in each mhz block for each set of processors. This can be useful if you set in a kernel manager (like SmartPack) a minimum CPU mhz to see how much time is actually spent at each level.
The code base also has Dynamic Stune Boost, but I haven't had time to optimize it for the device, so it's just on default settings. So there are 2 versions of this 1.35-bbr2 release. At some point it will be enabled as part of a regular release (some 17 commits squashed together into 1, Stune Assist was causing issues so I turned it off). The main idea of that set of code additions is to run the device at lower frequencies, saving battery, while still achieving the same performance level to the user of the phone. If you want to try different options for it in SmartPack or FK Kernel Manager you can.
Downloads:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.35-bbr2
7th Release:
MOD KERNEL 1.3-BBRv2 STABLE:
RELEASE NOTES:
Added the 31+ commits for BBRv2 from Google. Squashed the commits down to 6 by author from Google (for easy code maintenance). It's said to be the best TCP (internet congestion) algorithm so this sets it by default. You can still select from the others added in 1.3, as mentioned only EX Kernel manager properly shows them. But SmartPack if you choose the one you want under Misc, then click Apply on Boot, it actually will load the TCP algo you selected. It's just a visual defect. I also made a script for SmartPack uploaded to show you the TCP algo that's selected in my repo you can install so you can verify for yourself. Give it 10 seconds (default on boot setting) before you check.
Downloads:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.3-bbr2
6th Release:
MOD KERNEL 1.3 STABLE
RELEASE NOTES:
All this release adds is TCP congestion algorithms. The only kernel manager which correctly shows the algo set correctly is EX Kernel Manager. Using SmartPack or FK Kernel Manager will tell you that you're always on Reno, when in fact, you aren't. I'm not quite sure if this is bug related to 865 kernels as a fellow dev had the same experience (on an Op8 Pro). Now the default is set to BBR. Why? No reason specifically, although it is one of the better algorithms for internet usage. You can easily change in any kernel manager and set on boot which one you'd like to use (see above RELEASE NOTES if using SmartPack). But this gives you plenty of options:
BBR, BIC, CDG, CUBIC, DCTCP, WESTWOOD, HSTCP, HYBLA, HTCP, VEGAS, RENO, VENO, SCALABLE, LP, YEAH, ILLINOIS
You can Google the benefits of each and pick what you like. Or just leave it alone. The prime idea of MOD kernel is that you don't need to adjust anything it just works optimally without any intervention. Read the release notes for prior features that have been added. There are many just not summarized in a single place at the moment. All the optimization has been done for Red Magic OS.
Downloads:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.3
5th Release:
MOD KERNEL 1.25BETA
RELEASE NOTES:
This release is mostly about battery savings. I'm averaging around 6.5% active drain on normal tasks with this version (90hz setting), and around 0.5% screen off drain. A big improvement over the stock kernel. So I ended up with about 13 hours SOT + 24 hours screen off on 1 charge! See the picture, I stopped at 11% left. Now I didn't say anything about gaming. If you want to game and have power saving benefits, don't enable any of the built in boosting modes in the game launcher - the Red Magic OS will override everything. Let the kernel do the work for you. And if you're seeing any graphics lag, go into SmartPack kernel manager (free) and go under GPU, Adreno Boost is enabled on low, you can set it to medium or high. That will increase the speed at which the GPU throttles up and down.
1) Switch to the Energy Model for CPUs: Several subsystems (thermal and/or the task scheduler for example) can leverage information about the energy consumed by CPUs to make smarter decisions. This config option enables the framework from which subsystems can access the energy models.
2) Added CPUMASKS for the Little, Big, and Prime cores from Sultan Alsawaf Sultan: SultanXDA, prime added by Danny Lin: kdrag0n.
3) Added kernel control of the minimum frequencies for the little and big clusters by Danny Lin kdrag0n. They are set to run at their minimum running frequencies when idle 691mhz (little) and 710mhz (big) which results in nice power savings when web browsing or just under low load in general. Prime cluster min is not set as it makes the CPU scheduler function poorly.
4) Added AdrenoBoost by Aaron Segaert: Flar2, with all its changes squashed into 1 commit. Defaults to low setting. As mentioned before, you can change in SmartPack, and set on boot if you need a higher value than low: https://github.com/SmartPack/SmartPack-Kernel-Manager/releases
5) Uploaded the various GPU OC files to the repo, It still will just build off the default one, but they are here to be complete. 940mhz version again is posted, Building direct from the repo will give you 900mhz max GPU.
Downloads:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.25BETA
4th Release:
MOD KERNEL 1.2 BETA
RELEASE NOTES: (Note a 940mhz GPU clock edition is available, if you want to try it, a few of us have had good results on it. Likely the max an 865 GPU can run. You'll sacrifice the power savings, however):
1) Enable Power-efficient workqueues by default, add a toggle that can turn this off via a kernel manager (under CPU in SmartPack). Enabling this makes the per-cpu workqueues which were observed to contribute significantly to power consumption unbound, leading to measurably lower power usage at the cost of small performance overhead. Have also added many other power saving features to the defconfig. The phone is a beast, power savings is a good thing to implement.
2) Update the LZ4 decompressor algorithm with a much faster variant for the ZRAM swap, now version 1.8.3-9 credits Gao Xiang [email protected] and many others (check commits). Speed improvement below (should help on 8GB devices):
Compressor name Compress. Decompress. Compr. size Ratio Filename
lz4hc 1.7.3 -9 12 MB/s 653 MB/s 42203253 42.20 enwik8
lz4hc 1.8.3 -9 11 MB/s 965 MB/s 42203094 42.20 enwik8
3) Default scheduler is set to SQ deadline. Should see minimal improvements in speed until I get a MQ variant working. On the task list ahead.
Download Link:
1.2BETA: https://github.com/mrslezak/NX659J_Q_kernel/releases/download/1.2BETA/MOD-RM5G-GPUOC-Beta1.2.zip
940mhz GPU release here, it's still 1.2BETA, just with the max clock a few of us have been able to use. That doesn't mean your device can for sure handle it, but give it a try if you'd like! Note the power savings will likely not be there vs the other release at 900mhz:
https://github.com/mrslezak/NX659J_...oad/1.2BETA/MOD-RM5G-GPUOC-940mhz-Beta1.2.zip
3rd Release:
1.15BETA: https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.15BETA
This is a HEAVILY updated release of the MOD kernel 1.10BETA - I realized the phone's software will allow 6 frequency clocks, although 1 did not have a regulator defined (now patched). NOW I VERY HIGHLY suggest installing SmartPack Kernel manager. It will give you insights into the kernel and how it's performing and it's free. It also will let you adjust added options now in the kernel. Just root your phone and flash from TWRP. If you haven't already installed Magisk, then install that too. There's a guide I posted on XDA about that. Use the experimental method there is no reason to unlock your bootloader. https://forum.xda-developers.com/nu...how-to-unlock-bootloader-redmagic-5g-t4081743
RELEASE NOTES:
1) Bugfix: there was 1 missing 800mhz GPU frequency regulator clock on the prior version. This has been set to TURBO, 1 level under the 900mhz regulator of TURBO_L1.
2) Boeffla WakeLock blocker (v1.10 + tweaks) has been added to reduce battery drain when the phone is not being used, using the latest version and all patches. A default block list is included. You can access in SmartPack Kernel Manager under the new menu that will appear "Wakelocks" - especially investigate if your phone has high idle drain, you can experiment with blocking other wakelocks (which don't allow your phone to sleep). Or you can leave as is. I get just under 1% drain (screen off) and the phone sleeps quite often with this version. Take a look at the screen shot! That's just normal phone usage, not gaming.
3) All debug entries (except those required) have been stripped completely out of the kernel. This results in less wasteful debug information being generated.
4) The default algorithm for ZRAM has been changed from LZO (high compression, but slow) to LZ4 (slightly less compression, but fast). LZ4 algo was added. It still defaults to 4GB.
5) Dynamic Fsync has been added to the kernel as well. This patch allows journal entries to be written only when the screen is off. I.e. they are cached and written afterwards. This increases database performance. It is disabled by default so in SmartPack Kernel manager, if you'd like to turn it on, go under Misc, select Dynamic Fysnc, and select apply on boot. There is always a risk of data loss when delaying writes, although I've personally never have had issues - it only happens if the phone crashes, and mine has never crashed on this kernel. This won't normally increase your benchmark scores (except AndroBench), it increases SQLite database access speed. Up to you to use or not, works fine on my device.
6) Here are the updated frequencies (note there is 1 more). Will have to wait for AOSP before I can add back more. Note the 670MHz is likely the 865+ max frequency per the release notes today on the device (which I assumed by the source code anyhow pre-announcement): 900MHz / 800MHz / 670MHz / 525MHz / 400MHz / 305MHz
AS ALWAYS, USE AT YOUR OWN RISK!!!
Github Source:
https://github.com/mrslezak/NX659J_Q_kernel
Initial Release:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.0.BETA
Second release - gets over the "reset to 490mhz" bug caused by the system software, at the expense of reducing frequencies to 6 total:
https://github.com/mrslezak/NX659J_Q_kernel/releases/tag/1.10BETA
Newest release -> will be posted on the top from now on.
Telegram:
https://t.me/NubiaRedMagic5G_Mods
And note the AnTuTu benchmark is just a first run after installing. 670K is likely a record on any 865 phone. The last bench turning off 4GB ZRAM (12gb/256gb device) I got 673K. AnTuTu doesn't equal performance, but if you've benched you'll see this is an insane improvement over the stock kernel. Only when the demand is there will it scale up to 900mhz. I've been using for a while now and notice no difference in battery life. The Adreno driver is very good at handling extra clock frequencies efficiently without modification (despite an "Adreno Boost" that is often added to kernels). The gamers using the kernel are making statements that they couldn't imagine the game play any better than it already was, but now it's even smoother.
Unfortunately the way the Nubia software behaves, it auto-resets to power level 5 (which was 490mhz) on the 1.0BETA on boot and also after boosting the frequencies up. I tried every possible way to bypass this but eventually just gave in and removed frequencies. So the BETA1.10 and above have less frequencies but will always revert to 305mhz, the base minimum frequency of the device. Hopefully once we have AOSP ready I can add more.
MattoftheDead
I.e. M.O.D. Kernel Developer
The first Red Magic 5G OC kernel.
Xiaomi Mi9 / Mi9T Pro Pie V2 and Q V1.5 Kernel Dev
Nice work. Do you notice any benefits to OCing the GPU like that? I don't think there are many games that would benefit atm.
This is amazing !!! :laugh:
Is this going to work on all roms like CN, NA or EU Roms? Im currently running NA 3.11 flash from CN rom with root and twrp
We have people using it on CN Global and NA versions no problem at all. Works fine on every model.
Kernel is fully functional no issues at all.
CN Rom to NA Rom v3.11
305mhz min to 900mhz max confirmed and using smart pack to control the frequency
Thank you for this hopefully there is more development i really appreciate ur effort
Kernel building is just a hobby of mine, I was posting a minimal kernel to get some more kernel developers on board to hopefully add more features. I usually add Boeffla Wakelock Blocker and Dynamic Fsync and call it a basic kernel. The last super kernel I made took way too long, and I don't have that kind of time anymore - boost functions and underclocking to balance out the battery life and such. Development work doesn't pay anything, I didn't get the phone free, all my donations go to other developers. And I have a full time job and family. But if anyone wants to port over my MOD Kernel Q 1.5 Mi9 features, well that would be a super kernel. It's just really, really time consuming, time I don't have at the moment. And the merging of source has to be EXACT or you end up with a really slow phone rather one that balances underclocking, boost, and overclocking.
MishaalRahman said:
Nice work. Do you notice any benefits to OCing the GPU like that? I don't think there are many games that would benefit atm.
Click to expand...
Click to collapse
All the gamers using the kernel are reporting that the games run smoother than before, which no one thought was possible. It is already a flagship device. But the GPU OC with the Adreno driver scales when needed up to the frequencies that it has in the table and has no issue on 670, 800, and 900mhz reported so far. There are gamers on NA, Global, and CN ROMs, with no bugs reported. No issues and everything works properly. I have tested myself and although I'm not a gamer, all the functions work as they should. It still connects via Bluetooth, it still takes photos and videos, etc. There is no lag whatsoever. Overall I think the frequencies are ideal for this device with it's advanced active cooling system. Other devices however, with passive cooling, are unlikely to handle the increased GPU clocks.
I found an unusual bug where the GPU Minimum Frequency will reset on its own to 490mhz even if i set the minimum frequency to 305mhz im using smart pack kernel manager that you provided and cool tool btw to monitor the gpu frequency.
I also set the battery optimization to off on smart pack so it wont turn off itself.
This also happens when i played games that actually boost to 800 to 900mhz then after i close the game it sets back the minimum frequency to 490mhz so i have to set it again to 305mhz on the kernel manager to save more battery and lower the temps.
I also notice it sets back to 490mhz minimum frequency by just watching youtube videos so i have to set it back to 305mhz again. I tried different kernel manager too like Franco Kernel Manager and Kernel Audiator and still doesnt fix the issue
I think this was a minor bug for sure
I never touch the GPU governor btw
Performance was super nice thou i scored 645k on antutu on my first run but for now im going back to stock and gonna wait for your next update
What to do to root the phone without breaking the fingerprint please. I read the article publish nothing understood someone can explain to me step by step. I am an amateur I never root a phone. I have cn 2.55 16gb.
I don't have the same issue - I just tried to recreate it by watching a YouTube video and I went back to SmartPack and it still shows 305MHz GPU frequency. Although I'm using the debloated / optimized ROM I created Black Magic 5G which has everything setup properly, Nubia apps frozen, everything moved to 3rd party apps. NETFLIX patched to 4K HDR10, YouTube Vanced, a ton of root utilities, AdAway ad blocker, etc. You can find it on the Telegram channel (I'm using the NA/Global version of Black Magic 5G). Then I watched Netflix, still at 305mhz. As I have no idea how you've setup your phone, I just can't recreate it.
shaifabra5 said:
I found an unusual bug where the GPU Minimum Frequency will reset on its own to 490mhz even if i set the minimum frequency to 305mhz im using smart pack kernel manager that you provided and cool tool btw to monitor the gpu frequency.
I also set the battery optimization to off on smart pack so it wont turn off itself.
This also happens when i played games that actually boost to 800 to 900mhz then after i close the game it sets back the minimum frequency to 490mhz so i have to set it again to 305mhz on the kernel manager to save more battery and lower the temps.
I also notice it sets back to 490mhz minimum frequency by just watching youtube videos so i have to set it back to 305mhz again. I tried different kernel manager too like Franco Kernel Manager and Kernel Audiator and still doesnt fix the issue
I think this was a minor bug for sure
I never touch the GPU governor btw
Performance was super nice thou i scored 645k on antutu on my first run but for now im going back to stock and gonna wait for your next update
Click to expand...
Click to collapse
Yeah maybe because you modified the rom.
Im currently running Flash Global V3.11 when i tested your kernel no modification made im just rooted with TWRP Installed and i posted this kernel on red magic 5g group on facebook and 3 of us having the same issues as well.
Im gonna try it again on V3.13
UPDATE:
still returning to 490mhz as minimum frequency after gaming and after watching one youtube clip
kinda sad hopefully you can fix this bug on the global rom that nubia provided if you have the time, great kernel for gaming because of the 900mhz boost and the phone can sustain this boost because of the active fan
Why don't I have a roughly similar score?
Is it possible to overclock the CPU as well? They officially release the specs sheet of ROG Phone 3 it has overclocked CPU (3.091ghz) and an overclocked GPU. I know this phone can keep up with those clocks because of the cooling system but the problem is the battery life. But still, its worth it.
Blink003 said:
Is it possible to overclock the CPU as well? They officially release the specs sheet of ROG Phone 3 it has overclocked CPU (3.091ghz) and an overclocked GPU. I know this phone can keep up with those clocks because of the cooling system but the problem is the battery life. But still, its worth it.
Click to expand...
Click to collapse
I believe Qualcomm blocked overclocking of CPUs quite a while ago from SD845. Only GPUs can be overclocked.
Though I don't know if devs have gotten tools to get around it.
The 490 bug looks like it's related to the gaming mode APK resetting the min frequency. I can't decompile or recompile APKs so I don't have a way to get around the system reverting to 490 without removing 3 other frequencies. It seems hard-coded in the app that it only expects to see 5 frequencies so to have all working properly, 3 need to be removed. This is in contrast to what my buddy dev on the Op8 Pro can do, but this device is designed differently in how it boots and custom apps that increase frequency clocks. If any devs are good with APKs it's a very simple function call that sets the minimum GPU frequency. The only odd thing I see is that the minimum power level stays at 8 (minimum) which corresponds to the lowest clock speed. That number doesn't change in a kernel manager when the min GPU clock reverts to 490.
I'm off on vacation not near a PC but will try to come up with a stock # of clock frequencies that still scrolls smoothly between them and the Adreno GPU driver. May take a few tries but it's quite easy to modify. I already think 180mhz is too low from using it, it's more of a sleep frequency some suggested going this low but I think the phone design is for 300+. I prefer to use more clocks for better throttling but have to work with what we are given and do the best inside those boundaries.
No you can't raise CPU clocks on 865 devices that ROG device is supposedly using the 865+ or whatever the mid device is named between the 865 and 875. They have blocked CPU OC hardware wise for some time now.
mslezak said:
No you can't raise CPU clocks on 865 devices that ROG device is supposedly using the 865+ or whatever the mid device is named between the 865 and 875. They have blocked CPU OC hardware wise for some time now.
Click to expand...
Click to collapse
Qualcomm's Meizu’s CMO Wan Zhiqiang recently commented on Weibo saying that there won’t be a Snapdragon 865 Plus this year.
We will see!
No 865+ this year..
Trust me whatever they call it it's already defined in the source code as a second GPU bin clock for another device ID. So maybe it won't be called an 865+ but there is some device between the 865 and 875 coming out. I have OEM confirmation as well this device exists the name isn't important. I can tell you the top GPU frequency is 670mhz that's it, vs. the 587mhz default on the 865. Still the 865 handles 900mhz GPU no problem the only benefit would be higher CPU clocks. And an extra GPU clock. Which I'll attempt to spoof next time I get near a PC.
mslezak said:
Trust me whatever they call it it's already defined in the source code as a second GPU bin clock for another device ID. So maybe it won't be called an 865+ but there is some device between the 865 and 875 coming out. I have OEM confirmation as well this device exists the name isn't important. I can tell you the top GPU frequency is 670mhz that's it, vs. the 587mhz default on the 865. Still the 865 handles 900mhz GPU no problem the only benefit would be higher CPU clocks. And an extra GPU clock. Which I'll attempt to spoof next time I get near a PC.
Click to expand...
Click to collapse
Is it possible to overclock the memory clock too? I assumed that 900mhz is the core clock.
mslezak said:
Trust me whatever they call it it's already defined in the source code as a second GPU bin clock for another device ID. So maybe it won't be called an 865+ but there is some device between the 865 and 875 coming out. I have OEM confirmation as well this device exists the name isn't important. I can tell you the top GPU frequency is 670mhz that's it, vs. the 587mhz default on the 865. Still the 865 handles 900mhz GPU no problem the only benefit would be higher CPU clocks. And an extra GPU clock. Which I'll attempt to spoof next time I get near a PC.
Click to expand...
Click to collapse
You're right, that makes sense.
I'm glad they are making a refreshed chip.
On another note, do you think we will see an overclocking tool in the future?
Possibly with a custom ROM?

Categories

Resources