[Tutorial] Undervolting (Full Throttle) - LG Nitro HD

**DISCLAIMER** What you do to your phone is your responsibility and this guide will instruct properly but the extra input of a 0, or any number for that matter, can cook your CPU so move forward with caution!!
For now, this is dedicated to those of us still using HO!NO! Full Throttle AND HO!NO! V20F Mod ROM (thomas.raines is working on his LZ oc/uv kernel). The extent to whether the stock uv (undervolt) settings are intact are not entirely sure, but what I do know is with proper undervolting I've been able to get 1d 12hrs out of the stock battery with 1 1/2 screen on time. Let me begin by describing what undervolting/overvolting is:
Dynamic voltage scaling to increase voltage is known as overvolting; dynamic voltage scaling to decrease voltage is known as undervolting. Undervolting is done in order to conserve power, particularly in laptops and other mobile devices, where energy comes from a battery and thus is limited. Overvolting is done in order to increase computer performance, or in rare cases, to increase reliability.
To get the most out of our batteries, uv'n is a key component. All of this is done in Full Throttle under /ect/init.d/99ocvoltcontrol. My tutorial will be done using RE (Root Explorer). It's quite simple, to be honest, and will get you some serious battery life!
Step 1.
Navigate to /ect/init.d/99ocvoltcontrol and set RE to R/W. Hold down the 99ocvoltcontrol file and 'Open in Text Editor'.
Step 2.
You're going to see a lot of 'rubbish', if you will, but the only sets of numbers we worry about are the first two sets in each line. The first number, i.e. 192000 is the clock speed and the 800000 is the current voltage.
What you're going to do from here is select the 800000 and change it to something like 750000, which would result in a -50 uv for that clock speed, which in turn uses less power when in sleep mode or resting at that clock speed.
Example: echo "192000 800000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
subtracting 50 from the 800000
Result: echo "192000 750000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
That's it! Simple, right? You just do that to the remaining clock speeds; adjusting each clock speed to your liking and what works best w/ your phone.
Step 3.
Hit the 'Menu' key on your phone and select 'Save and Exit' and reboot your phone and profit!
Example: My uv settings are as such: -75 from 192Mhz to 1080Mhz; -50 from 1134Mhz to 1566Mhz; and -25 upto 1728Mhz
Keep in mind, in my experience, the higher the clock speed, the more voltage it needs, obviously, so be careful going too low at higher levels.
So try different voltage settings and see what works best for your phone. I've found that going -100 at 192Mhz causes reboots, for example.
Screenshot of battery time in 2nd post...

Stock battery w/ the settings I posted in the OP.
Sent from my LG-P930 using xda premium

Very helpful and clear instructions, but is the current undervolt set by the Full Throttle ROM not enough?

Technocian said:
Very helpful and clear instructions, but is the current undervolt set by the Full Throttle ROM not enough?
Click to expand...
Click to collapse
That's why I made mention if they're stock voltages or not in FT but if your phone will take lower settings, do it..just be careful! Don't add an extra number. I can't stress that enough! If you set them too low, the worse that will happen, in my experience, is a reboot. Just change the value back to a more stable setting. Have fun w/ it!

X0dus said:
That's why I made mention if they're stock voltages or not in FT but if your phone will take lower settings, do it..just be careful! Don't add an extra number. I can't stress that enough! If you set them too low, the worse that will happen, in my experience, is a reboot. Just change the value back to a more stable setting. Have fun w/ it!
Click to expand...
Click to collapse
I'll give your values a try. Is there a cellphone equivalent to Intel Burn Test or Prime 95? Something to ensure stability would be nice. Also, I never looked into it... but how much more of an undervolt is this compared to stock Full Throttle?

Technocian said:
I'll give your values a try. Is there a cellphone equivalent to Intel Burn Test or Prime 95? Something to ensure stability would be nice. Also, I never looked into it... but how much more of an undervolt is this compared to stock Full Throttle?
Click to expand...
Click to collapse
I use stability test from the play store. The stock FT voltage settings are: #! 800000 825000 825000 850000 850000 875000 875000 900000 900000 925000 950000 975000 975000 1000000 1000000 1025000 1025000 1050000 1075000 1100000 1125000 1150000 1150000 1175000 1200000 1225000 1250000 1275000 1300000 1325500 1350000 1375000 ... So, subtracting 50, 75, or even 100 from any of those in their respective spots will result in such an uv.
Sent from my LG-P930 using xda premium

Updated Step 2 to clarify any confusion.
I also changed my UV settings from -75 @ 192Mhz to -100 up to 486Mhz. The max CPU value while in sleep mode is set @ 486Mhz by default so I figured if I can get lower voltage scales in those few than I'm gonna. Passed 6 runs of Stability Test (Play Store).

at normal temperature, your phone should be worked ok with UV. the default voltage from stock manufacture make sure it's work on more wide range of environment's condition. when you put it down, it's mean you narrow the range condition. sometime it work ok, normally, sometime will have some issue. take care with your UV value.
---------- Post added at 07:56 PM ---------- Previous post was at 07:48 PM ----------
one more thing, this voltage will feed to one by one each transistors on components of your phone's chip. hope that your change not affect too much to operating of your chip. I guess manufacturer had set limit range value to restrict users who are "tamper limbs"

Bump for HO!NO! V20F Mod ROM. This tutorial is good for his ROM, too, but his is already undervolted atleast -25 already compared to FT v9, fyi.

X0dus said:
[...]
Click to expand...
Click to collapse
Wow, very good guide!
I've always been kind of intimidated by the oltage settings for our phone but your guide has helped me to better understand the settings and files required to edit.
+Thanks

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

[PATCH] ondemand deep cpuidle detection

[EDIT: Feel free to jump to comment #9]
[EDIT2: last version of the patch to apply to the kernel is in comment #25, applying the patch to the kernel source is all you need to test]
[EDIT3: changed name to deep cpuidle, I figured "deep sleep" is usually meant as "suspend-to-ram" and this has nothing to do with suspend, suspend is entered at fixed SLEEP_FREQ and the cpu frequency is irrelevant during suspend because CPU power is cut-off]
On my galaxy S I've been monitoring my cpufreq stats and the stats/total_trans keeps increasing every second or so with default cpufreq values and ondemand governor, when the screen is off and the cellphone is idle. This means the cpu spends some time spent at the high frequency even if the cellphone is idle and screen off.
I noticed if I increase the ondemand/sampling_rate from the default 40000 (on i9000) to 80000 the total_trans go down to one every 10 or 20 sec. But I want to decrease the sampling_rate to 20000 so it takes only 20msec to jump to 1ghz. 40msec (the default) is too much. 40msec means 25hz but the first image frame would get lost because it'd be rendered at 100mhz instead of 1ghz. at 20msec of sampling_rate the frequency is 50hz so if the first frame is lost we're still down to 25hz which is less noticeable to the eye. I think 20000 is the max that sampling_rate should be set for decent responsiveness.
However if I drop the sampling_rate to 20000 as I prefer, when the screen is off the stats/total_trans increases even faster at a couple per second, than with the default of 40000, so sampling_rate 20000 is ideal for responsiveness but it will waste power when the screen is off.
So my solution is to force the max frequency allowed by the cpu policy to the min frequency when the screen is off. After that I can easily set sampling_rate to 20000 and io_is_busy to 1, by adding this the init.rc of the initramfs. I prefer io_is_busy to be 1, because 100mhz is really slow and the I/O will take some significant percentage of CPU too if set at 100mhz, and especially because after the I/O is complete I'll avoid losing one frame.
write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 20000
I'm also testing with up_threshold 80 but I'm not sure if it is better or worse... need to do more tests on the below one, could be a bad idea.
write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 80
This way I can tune the ondemand as aggressive as I need without sacrificing the powersaving when the screen is off. In fact it should use less power now when the screen is off than before.
The patch is for the ginger update2 kernel, running 2.3.4 XXJVR using the kernel modules of XXJVS (I rolled back the userland and initramfs to JVR because JVS disconnects wifi for me).
I've noticed there's a smartass2 governor which I didn't try, it may work better than this, but I tend to trust the ondemand governor to be the best for responsiveness, and my approach is much simpler than the smartass2 governor, I'm not in a mood of doing beta testing or risking instability for a feature that can be achieved so simply. If ondemand isn't aggressive enough I prefer ondemand to be improved to be more aggressive. Ondemand is what runs on most laptops/workstations so we can't afford it not to be as fast as it can.... The problem is not specific to cellphones. And when screen is off there is not point to ever increase the frequency over 100mhz on i9000 (and unfortunately it happens and it's not fair to pretend some background service to call usleep(1) just to avoid the frequency jump).
Note, you may want to remove the two printk from the patch, they shouldn't flood but they're only for debug...
I think you need to put a [MOD] in your title.
First, thx you for sharing your work !
Your .zip patch the existant ondemand governor, or it is adding a new governor which can be selected via app like voltage control & such ?
Anyone wanna try this out and share what it does actually? All thoaellse reading above are too technical for most of us I guess. I'd love to try but I'm on JVS now and you said it is for JVR.
Thanks for the share by the way...
Sent from my GT-I9000 using Tapatalk
cnn888 said:
Anyone wanna try this out and share what it does actually? All thoaellse reading above are too technical for most of us I guess. I'd love to try but I'm on JVS now and you said it is for JVR.
Thanks for the share by the way...
Sent from my GT-I9000 using Tapatalk
Click to expand...
Click to collapse
Well I'm running the JVS kernel on top of JVR userland+initramfs. It'll run perfectly on JVS but I only posted the source and it'll work for both
I'm also a bit annoyed often I see mods and tweaks and I try to search the source and it's not so easy to find it. I'd recommend people to post more source and less binaries.
You just need to ask one kernel builder that ships with the ondemand governor to apply my patch, add those 3 lines to the initramfs/init.rc file and rebuild and it'll work for JVS too. Theoretically it will drain less when the screen is off and it'll be a bit more responsive when screen is on.
---------- Post added at 07:42 PM ---------- Previous post was at 07:36 PM ----------
Rootax said:
First, thx you for sharing your work !
Your .zip patch the existant ondemand governor, or it is adding a new governor which can be selected via app like voltage control & such ?
Click to expand...
Click to collapse
The whole point of this approach is not having to change governor and to share the ondemand governor which must provide max performance and max responsiveness on laptop and desktops so I don't see the point of creating a new governor when the screen is on, considering the requirements are the same.
I thought lowering voltage was considered risky, I don't want to change voltage but if you want to change the voltage I think the best place to do it is still my two handlers I added in the patch, no new governor required, I doubt you want to change voltage when the screen is on, and when the screen is off I guess you want always the lowest voltage and lowest freq like me.
A new governor is not needed in short, just a few liner patch to set the max freq at the lowest when screen is off is my preference, especially because it's so much simpler
right... and umm... suppose that i want to apply this mod, how do we apply this patch of yours?
i'm sorry but am not really a linux frenzy...
cnn888 said:
right... and umm... suppose that i want to apply this mod, how do we apply this patch of yours?
i'm sorry but am not really a linux frenzy...
Click to expand...
Click to collapse
re-build kernel source
great work newmail !
another (non-invasive) approach
would be to use a bare screenstate_scaling (well - not really scaling)
init script and limit the max frequency via that + set those values
zacharias.maladroit said:
re-build kernel source
great work newmail !
another (non-invasive) approach
would be to use a bare screenstate_scaling (well - not really scaling)
init script and limit the max frequency via that + set those values
Click to expand...
Click to collapse
Thanks.
I figured with csipsimple with the proximity sensor, 100mhz are not enough.... so I'm now decreasing the max frequency to 800mhz when screen is off, and I'm keeping the default sampling_rate to 10000 msec (setting transition_latency to 10000, equivalent to writing 10000 into ondemand/sampling_rate).
I also changed the code a bit to call all notifiers when the max frequency changes from 1ghz to 800mhz.
Now I did quite a bit more tests and something's going wrong when screen goes off in cpufreq. The cpu is idle, but ondemand raises the frequency more than if the screen is on. That is probably why the cpu isn't very idle when the sampling_rate is reduced go give more responsiveness. If I change get_cpu_idle_time_us to return -1 unconditionally, the trans_total are greatly reduced with screen is off and the ondemand stays at the low frequency when screen is off with sampling_rate 10000 too.
I also tried to measure the cost of a frequency switch (including the overhead caused by ondemand sampling at 1khz) and it seems of the order of 38usec.
I'm wondering if there's some bug in the get_cpu_idle_time_us that is causing the jitters in the ondemand governor when screen goes off.
I found the problem with the ondemand governor while in earlysuspend suspend mode. The problem is that the cpu starts to go in deep sleep, so a sampling_rate of 10000 is applied only once in a while, the real sampling_rate becomes 1second or more.
So when that happens the CPU goes in deel sleep all the time and ondemand tends to stay stuck at the max frequency all the time, by mistake, despite the load is near 0%.
After deep sleep when a wakeup happens we return to the 10000usec sampling rate. ondemand sees activity after the deep sleep wakeup but those wakeups "loads" must be adjusted down if the previous wall_time delta was huge and the current one is tiny. We're too close to deep sleep to ramp up cpu freq.
So my solution is to tweak the ondemand to scale down the "load" according to the decrease in the wall_time delta ratio (deep_sleep_ratio variable).
When screen is on, or during a call or during playback with screen off, the deep_sleep_ratio is 1, so the ondemand behaves as aggressive as always. But the deep_sleep_ratio ramp up when the phone is idle and the idle deep sleep states starts. With this tweak I can use the ondemand governor with the default values and the sampling rate set to 10000 (for max responsiveness) and the cpu freq will stay down to 100mhz with no jitter when the screen is off and the load is near 0% (instead of staying close to 1ghz most of the time with the 10000 sampling rate setting, 40000 of the JVS tends to hide it but it still jitters a lot and it hurts interactivity to be unable to set it below 40000).
In my first post I already noticed this jittering of the ondemand governor with the screen off. And I thought to solve it by lowering the freq to min with the screen off (which screwed csipsimple). I also noticed that a sampling_rate of the order of 100000 would decrease the jittering and with 10000 the cpu freq would be set at the maximum all the time. But the real problem was the ondemand comparing apples to oranges with the deep sleep state, and this explains why the jittering wasn't as bad with the screen on, as opposed to the badness with the screen off and the CPU going in deep sleep at high freq most of the time.
So this heuristic I wrote solves the problem, and I also disabled all those dvfs magics in cpufreq that prevented to use the 100hz frequency most of the time. It works fine for me with screen on, and now with screen off (proximity sensors) voip works perfectly too (I also verified deep_sleep_ratio is 1 during calls with proximity sensor activated). Any real activity will prevent the deep sleeps so it's perfectly ok to ignore the high loads measured just after returning from the deep sleep.
Anyway feel free to experiment. I also wrote another patch to switch the governor to performance automatically when screen goes on, and return to ondemand (with deep sleep detection) when screen goes off. But I think this heuristic is better and ondemand won't be exactly as fast as "performance" but especially at 10000 sampling_rate the difference should not be noticeable. And so I prefer to save a tiny bit of power by using ondemand all the time. Plus it proofs the new logic is good if it works for both scenarios.
I still decrease the max cpu frequency when screen is off to 800mhz (not anymore to 100mhz after I found it screws the voip and playback with screen off). ondemand will immediately jump to max the moment the threshold is exceeded (default threshold is 95% of not idle time). So this helps because all csimpsimple/skype/musicplayer background non-interactive workloads that may run with the screen is off and this will avoid to ever reach 1ghz which isn't needed for any of those background apps. 1ghz returns when screen goes on again.
In addition to this patch you can also consider adding these two lines to init.rc, but they're just to tune it a bit more aggressively. In the end I couldn't measure any difference from either one (default is 0 for io_is_busy, and 95 for up_threshold) so I'm using the default values and I didn't add the below to my currently running kernel. Probably you can ignore this and only apply the patch to the kernel.
write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1
write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 80
I recall having read of some tweakded ondemand governor in some rom, but there was no link to source... again I recommend folks to post link to source whenever a new cooked rom is published.
Considering this is closer to a bugfix, if this is confirmed to work by others I can try push the deep_sleep_ratio as a core feature in the kernel, maybe under some better name, to enable in sysfs so in future releases changing init.rc would be enough. It may be useful to other than arm as this is a common problem of what happens after the cpuidle governor enter deep sleep and sleeps more than the sampling_rate.
You can use this to monitor the effect before/after.
adb shell 'cd /sys/devices/system/cpu/cpu0/cpufreq; while :; do cat stats/*; sleep 1; done'
With the patch applied (which also sets sampling_rate at 10000, your default currently is 40000) you will get this when screen is off.
3384
1000000 11256
800000 21625
400000 1642
200000 6266
100000 469564
3384
1000000 11256
800000 21625
400000 1642
200000 6266
100000 469669
3384
1000000 11256
800000 21625
400000 1642
200000 6266
100000 469774
3384
1000000 11256
800000 21625
400000 1642
200000 6266
100000 469888
3384
And this with screen on (without touching
3461
1000000 11316
800000 22619
400000 2067
200000 6290
100000 477547
3461
1000000 11316
800000 22619
400000 2067
200000 6290
100000 477652
3461
1000000 11316
800000 22619
400000 2067
200000 6290
100000 477758
3461
1000000 11316
800000 22619
400000 2067
200000 6290
100000 477864
3461
1000000 11324
800000 22619
400000 2067
200000 6297
100000 477956
3464
There is some seldom jitter still but nothing significant anymore (and with sampling_rate set to 10000, it wasn't just a jittering problem but it was at max freq all the time). Some minor jittering like above is just unavoidable if some userland run a bit longer, and at 100mhz it doesn't take much CPU load to run longer.
I also measured the raw performance by calculating PI and it's within the measurement range error if compared to performance governor. quadrant just fine too unchanged over 1600 at the 3rd run, so I'm optimistic it's not degrading perf.
cnn888 said:
right... and umm... suppose that i want to apply this mod, how do we apply this patch of yours?
i'm sorry but am not really a linux frenzy...
Click to expand...
Click to collapse
I could upload a .tar file to flash in odin somewhere... but I worry about the redistribution of a zImage with an initramfs including those annoying binary modules that aren't GPLv2 (or we would have the source of those too) and I can't easily get rid of.
Dividing the load by deep_sleep_ratio was too aggressive. I noticed some app was more laggy than with "performance" governor. The better approach to the long deep sleeps is to ignore jitters until the wall_time_delta converges. I added comments on the reason why this is better, and it seems also better to ignore time jitters in both directions (so also to ignore measurement of long wall_time when the wall_time_delta average is short, with screen on). I attached an update, it still avoids the jittering with the screen off and phone idle, and it works better with the phone on.
With this one phone sits at 100mhz with screen off (freq range with screen off 100mhz-800mhz), works fine when doing voip calls with proximity sensor as before. With screen on the freq range is now 200mhz-1ghz, considering that without the patch the phone may never reach 100mhz even with screen off, it is most certainly not going to make a difference and 100mhz is way too slow and we've to run at least 10msec at 100mhz before we can ramp up the freq. So this will double speedup those first 10msec compared to the prev version. The jittering with screen off completely goes away and the phone stays at 200mhz fixed if you disable the rotation sensors, otherwise there are 2 jitters from 200mhz to 1ghz and back per second, which is certainly fine.
I've been using for a while and I'm pretty happy and should work better than the previous version. That app were I noticed an higher lag with previous version, now seem to be as responsive as performance or at least I can't see a difference anymore.
If you test it let me know and please check when screen is off and phone not awake, if the battery is lasting longer or not. By looking the chart I attached (running the sleep2 version in this post) it seems my battery went down 2/3% in 6 hours with this. Frankly I don't remember if it was as good before... all I know for sure is that what happened before with ondemand didn't make much sense: a proper governor allowed to use a range from 100-800mhz must keep the cpu at 100mhz when screen is off and phone is idle, and with the deep sleep detection fix, ondemand finally behaves well, and it works fine with voip with screen off, it doesn't require to rump up the min freq from 100mhz to 200mhz with screen off, and it seems more responsive than before thanks to the 4 times more frequent sampling rate (and maybe also thanks to ignoring the long deep sleep cycles during interactive behavior but that I'm not entirely sure if it helped but it still looks good idea to ignore the infrequent wall_time_delta jitters). It's also likely that the cpu goes into very long deep sleep shutting down the cpu harder and maybe the freq it enters those states don't matter, but at least this should help if you play music in the background with the screen off, it manages to do that now at 100hz without skips.
It's certainly refreshing to see good research being done in a consistent manner. Keep up the good work
pikachu01 said:
It's certainly refreshing to see good research being done in a consistent manner. Keep up the good work
Click to expand...
Click to collapse
Thanks well it all started with my phone being 80% dischared for two mornings in a row and that annoyed me enough to look into this. I was pretty certain it wasn't a kernel problem (I think it was the broken update of the facebook app that has "keep phone awake" privilege and is buggy, I uninstalled it since then) but that still made me look into this... and what I found looking at the cpufreq stats with screen off wasn't too pretty, it just become utterly ugly if I decrease the sampling_rate to 10000, and so I spent the weekend trying to fix it. In any case I'm unlikely to post further updates until next weekend .
Another possible way to fix this would have been to have the cpuidle governors interacting with the cpufreq governors through some notifier call... but adding a small heuristic to ondemand to detect the wall_time_delta jitters was certainly simpler.
newmail said:
Thanks well it all started with my phone being 80% dischared for two mornings in a row and that annoyed me enough to look into this. I was pretty certain it wasn't a kernel problem (I think it was the broken update of the facebook app that has "keep phone awake" privilege and is buggy, I uninstalled it since then) but that still made me look into this... and what I found looking at the cpufreq stats with screen off wasn't too pretty, it just become utterly ugly if I decrease the sampling_rate to 10000, and so I spent the weekend trying to fix it. In any case I'm unlikely to post further updates until next weekend .
Another possible way to fix this would have been to have the cpuidle governors interacting with the cpufreq governors through some notifier call... but adding a small heuristic to ondemand to detect the wall_time_delta jitters was certainly simpler.
Click to expand...
Click to collapse
well, I don't know how motivated or how much time you want to spend in investigating this
but if want to dedicate some more time
make sure you also take a look how ondemandx works
(cpufreq_ondemandx.c in my repo)
zacharias.maladroit said:
well, I don't know how motivated or how much time you want to spend in investigating this
but if want to dedicate some more time
make sure you also take a look how ondemandx works
(cpufreq_ondemandx.c in my repo)
Click to expand...
Click to collapse
Thanks for the pointer! Appreciated . I won't have much time to look into this until the next weekend (I'll look into it ASAP , but with the last version I posted in comment #11 (ondemand-deep-sleep2.patch) things are going absolutely great. In fact it works much better with skype than the stock unpatched kernel: when I iconize skype during a call it won't degrade the audio anymore. I'm sure it degraded audio for a little if I iconized skype and started another app during a call. I guess it's the faster sampling rate, or maybe the fact I now ignore the long idle times if the average wall_time is short. Both are good.
The sampling_rate not being constant with long cpuidle times that disregard software timers, really requires this fix to the ondemand to perform great. So I'm super happy about this change so far. 100-800/200-1000mhz also works great. And this change won't have any effect on laptops/workstations where the timers should fire as expected. (I also tried 100-400/400-1000 for a while but there's no point it seems, 100-800/200-1000 is enough so I'm back to the exact values in the last patch I posted)
I doubt it's worth to stop the sampling like interactive governor does while cpu is idle, considering cpuidle will disregard the timers so there's no risk to wakeup too early because of a timer it seems.... I think this changes will improve ondemand in general and it is required fix for these phones IMHO.
The fact background apps like music player with screen off now run 95% of the time at 100mhz also looks great. I didn't have any sign of instability, and I run a lot of load on it (though only for the last few days...). I sent my patch to some samsung engineer who added the SLEEP_FREQ to the cpufreq upstream code (to enter suspend to ram at 800mhz which I didn't alter, that sure is fine change considering the cpu is cut off the power during suspend to ram, it'll speedup suspend to ram too in addition to not crashing phone as described in the patch . In my patch I only handle the frequency changes right when cpuidle runs for long and I doubt the cpu is cut off the power for only 60msec or 500msec when screen is off, that's too fast to cut the power completely I guess so I think it's worth it. And if it doesn't help to save power when idle, for it sure won't hurt either and the statistics now look sane and this change should help while using the phone too by allowing to lower the sampling_rate and avoiding interactive usage to be fooled by long cpuidle samplings started at high freq that decrease the freq just before the real loads come in and idle is exited (ignoring those long wall_times during interactive usage is also good and should save power too as the load will complete faster and cpu will be allowed to spend more time in idle at low freq then).
Deep Sleep
Hi, you said that you first came to this topic because some app was keeping your CPU from deep sleep, probably FB app. This night I also experienced that the phone did not go into deep sleep, it was awake all the time according the battery status. So is there a way to check, which app causes this behaviour?
See attachment for a screenshot.
newmail, against what kernel base does your patch apply ?
samsung kernel sources JVB & JVH (1st release + 1st update) ?
zacharias.maladroit said:
newmail, against what kernel base does your patch apply ?
samsung kernel sources JVB & JVH (1st release + 1st update) ?
Click to expand...
Click to collapse
Thought you were on time-out??
dachau said:
Thought you were on time-out??
Click to expand...
Click to collapse
This is his time out, wait till you see him on his kernel dedication time.
^^
Sent from my GT-I9000 using XDA Premium App
newmail said:
I could upload a .tar file to flash in odin somewhere... but I worry about the redistribution of a zImage with an initramfs including those annoying binary modules that aren't GPLv2 (or we would have the source of those too) and I can't easily get rid of.
Click to expand...
Click to collapse
Newmail, first of all your analysis + the mod for governor was awesome !
basically actually not a dev and i can't patch my kernel myself (hmm.a noob kinds when it comes to kernel stuff )
i'm wondering how would be your patch's results vs Smartassv2's coz your patch includes the stuff directly in Ondemand Governor that's a perfect approach making it more effective .
So, please could you prepare a CWM flashable if possible on behalf of those GPLv2 (idk what are those btw ) or a step by step procedure to perform the FIX .. ?
Thankyou again for your approach on CPU freq tweak !!

[Q] Daemon controller, what is all this nonsense O.O?!

ok idk ow to overclock correctly i need a way to make this sense 3.5 rom less laggy an run more smoothly, can anybody help me with this???
Yes just use Daemon Controller (basically functions the same as SetCPU) and set your maximum frequency. For most ROMs I would set it around 1.5Ghz, and set the governor to smartass or smartassv2. The governors will depend on the kernel you're using. For a good sense kernel, I would use this one.
Additionally, you can download Incredicontrol via the market and that will enable you to adjust your voltages, based on the frequency steps. A lot of people prefer to bump the voltage up or down 25% to increase performance or reduce battery drain.
I AM NOT RESPONSIBLE FOR ANY PAIN AND SUFFERING YOUR DEVICE MAY INCUR.
If I helped, slap my Thanks button around a bit.
chattguy said:
Yes just use Daemon Controller (basically functions the same as SetCPU) and set your maximum frequency. For most ROMs I would set it around 1.5Ghz, and set the governor to smartass or smartassv2. The governors will depend on the kernel you're using. For a good sense kernel, I would use this one.
Additionally, you can download Incredicontrol via the market and that will enable you to adjust your voltages, based on the frequency steps. A lot of people prefer to bump the voltage up or down 25% to increase performance or reduce battery drain.
I AM NOT RESPONSIBLE FOR ANY PAIN AND SUFFERING YOUR DEVICE MAY INCUR.
If I helped, slap my Thanks button around a bit.
Click to expand...
Click to collapse
0k the number says 245760 i cant tell which is the 1.5 ghz?
245mhz... That is your lowest frequency. You'll set that as your minimum. Your max should be set at 1497mhz. It'll have some numbers straggling on the end but disregard them. 1497mhz = 1.5Ghz.
Sent from my Incredible 2 using Tapatalk

vsel values for cm9/cm10

Can we get a thread together for battery values. I am looking to maximize my battery life and wanted to know what governor values to set for cm9 particularly
Format of the thread should be
battery uptime: 22 hours per charge
main usage: wifi/music/email vs heavy data useage
vsel values
1. 33 300
2. 48 600
3. 58 800
Why is it even in the bootloader when I set VSEL 4 that the max CPU in the CM10 menu is set to VSEL3? How can I enable VSEL 4?
zetsui said:
Why is it even in the bootloader when I set VSEL 4 that the max CPU in the CM10 menu is set to VSEL3? How can I enable VSEL 4?
Click to expand...
Click to collapse
This doesn't need to be in the development forum. But to answer your question, utilizing CLK 4/VSEL 4 requires the GB kernel.
zetsui said:
Can we get a thread together for battery values. I am looking to maximize my battery life and wanted to know what governor values to set for cm9 particularly
Format of the thread should be
battery uptime: 22 hours per charge
main usage: wifi/music/email vs heavy data useage
vsel values
1. 33 300
2. 48 600
3. 58 800
Why is it even in the bootloader when I set VSEL 4 that the max CPU in the CM10 menu is set to VSEL3? How can I enable VSEL 4?
Click to expand...
Click to collapse
My settings for all roms. I get usually get 24 hours plus no matter what rom I use, and that's with using live wallpapers as well. The only time I get less is when I'm using a ton of bandwidth online or playing games. I get better battery with the values in parentheses since 700mhz handles mid lever activity much better than stock 600mhz and doesn't need to jump up to vsel3 near as much.
1. [email protected] (or 18)
2. [email protected] (or [email protected])
3. [email protected] (or [email protected])
Governor is Boosted (You can also mirror these settings with Smartass or SmartassV2 -preferred- for similar results)
Settings Are:
bst_awake_ideal_freq 600000 or 700000 (whatever vsel2 is set at)
bst_debug_mask 0
bst_down_rate_us 60000
bst_max_cpu_load 88
bst_min_cpu_load 40
bst_ramp_down_step 300000
bst_ramp_up_step 150000
bst_sample_rate_jiffies 2
bst_sleep_ideal_freq 300000 (whatever vsel1 is)
bst_sleep_wakeup_freq 300000 (whatever vsel1 is)
bst_up_rate_us 80000
You can also get good battery with conservative with these values. If you get lag, either deal with it or lower con_up_threshold. If you don't mind slight lag, the set con_up_threshold to 100.
con_up_threshold 95
con_down_threshold 40
con_freq_step 8
con_sampling_rate 160000
You can't use vsel4 since that requires a gingerbread kernel, which requires you to be on a Defy; preferably a red lens so you can use the camera. Motorola never updated the Bravo past Froyo, so were stuck with the Froyo kernel and all the limitations because of that.
syllogyking said:
This doesn't need to be in the development forum. But to answer your question, utilizing CLK 4/VSEL 4 requires the GB kernel.
Click to expand...
Click to collapse
Completely missed that post yesterday....There already is a vsel\cpu governor thread for the Bravo here. You'll notice my settings have changed quite a bit from that post\thread, but the roms have gotten better so they work better with lower vsels now. I was in a hurry and didn't even think of linking to the other thread
Check this out http://androidunderground.blogspot.com.ar/2011/05/setvsel-overclock-and-undervolt-your.html
BravoMotorola said:
Check this out http://androidunderground.blogspot.com.ar/2011/05/setvsel-overclock-and-undervolt-your.html
Click to expand...
Click to collapse
Good link for the newbs. My only issue with it is I've never had good vsel2 time with ondemand's stock 86 threshold value. That may be due to the page being written for Eclair and Froyo Defy while I've done most of my tests on CM7, a few on CM9, and a few on GB MIUI.
With minor\no tweaking, anything is better than ondemand 86 to save battery life. IMHO it goes boosted\smartassV2 > conservative > interactive > everything else. Those 4 governors are the only one's I'd bother with since they work (no bugs; smartass), have noticeable changes in behavior when tweaked, and can be tuned to use vsel2 more than 3. Also, boosted/smartassV2 are based on both conservative and interactive and take features from both.

-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.

Categories

Resources