A plethora of info on CPU governors (source):
CPU frequency and voltage scaling code in the Linux(TM) kernel
L i n u x C P U F r e q
C P U F r e q G o v e r n o r s
- information for users and developers -
Dominik Brodowski <[email protected]>
some additions and corrections by Nico Golde <[email protected]>
Clock scaling allows you to change the clock speed of the CPUs on the
fly. This is a nice method to save battery power, because the lower
the clock speed, the less power the CPU consumes.
Contents:
---------
1. What is a CPUFreq Governor?
2. Governors In the Linux Kernel
2.1 Performance
2.2 Powersave
2.3 Userspace
2.4 Ondemand
2.5 Conservative
2.6 Interactive
2.7 MinMax
2.8 SmartassV2
3. The Governor Interface in the CPUfreq Core
1. What Is A CPUFreq Governor?
==============================
Most cpufreq drivers (in fact, all except one, longrun) or even most
cpu frequency scaling algorithms only offer the CPU to be set to one
frequency. In order to offer dynamic frequency scaling, the cpufreq
core must be able to tell these drivers of a "target frequency". So
these specific drivers will be transformed to offer a "->target"
call instead of the existing "->setpolicy" call. For "longrun", all
stays the same, though.
How to decide what frequency within the CPUfreq policy should be used?
That's done using "cpufreq governors". Two are already in this patch
-- they're the already existing "powersave" and "performance" which
set the frequency statically to the lowest or highest frequency,
respectively. At least two more such governors will be ready for
addition in the near future, but likely many more as there are various
different theories and models about dynamic frequency scaling
around. Using such a generic interface as cpufreq offers to scaling
governors, these can be tested extensively, and the best one can be
selected for each specific use.
Basically, it's the following flow graph:
CPU can be set to switch independently | CPU can only be set
within specific "limits" | to specific frequencies
"CPUfreq policy"
consists of frequency limits (policy->{min,max})
and CPUfreq governor to be used
/ \
/ \
/ the cpufreq governor decides
/ (dynamically or statically)
/ what target_freq to set within
/ the limits of policy->{min,max}
/ \
/ \
Using the ->setpolicy call, Using the ->target call,
the limits and the the frequency closest
"policy" is set. to target_freq is set.
It is assured that it
is within policy->{min,max}
2. Governors In the Linux Kernel
================================
2.1 Performance
---------------
The CPUfreq governor "performance" sets the CPU statically to the
highest frequency within the borders of scaling_min_freq and
scaling_max_freq.
2.2 Powersave
-------------
The CPUfreq governor "powersave" sets the CPU statically to the
lowest frequency within the borders of scaling_min_freq and
scaling_max_freq.
2.3 Userspace
-------------
The CPUfreq governor "userspace" allows the user, or any userspace
program running with UID "root", to set the CPU to a specific frequency
by making a sysfs file "scaling_setspeed" available in the CPU-device
directory.
2.4 Ondemand
------------
The CPUfreq governor "ondemand" sets the CPU depending on the
current usage. To do this the CPU must have the capability to
switch the frequency very quickly. There are a number of sysfs file
accessible parameters:
sampling_rate: measured in uS (10^-6 seconds), this is how often you
want the kernel to look at the CPU usage and to make decisions on
what to do about the frequency. Typically this is set to values of
around '10000' or more.
show_sampling_rate_(min|max): the minimum and maximum sampling rates
available that you may set 'sampling_rate' to.
up_threshold: defines what the average CPU usage between the samplings
of 'sampling_rate' needs to be for the kernel to make a decision on
whether it should increase the frequency. For example when it is set
to its default value of '80' it means that between the checking
intervals the CPU needs to be on average more than 80% in use to then
decide that the CPU frequency needs to be increased.
ignore_nice_load: this parameter takes a value of '0' or '1'. When
set to '0' (its default), all processes are counted towards the
'cpu utilisation' value. When set to '1', the processes that are
run with a 'nice' value will not count (and thus be ignored) in the
overall usage calculation. This is useful if you are running a CPU
intensive calculation on your laptop that you do not care how long it
takes to complete as you can 'nice' it and prevent it from taking part
in the deciding process of whether to increase your CPU frequency.
2.5 Conservative
----------------
The CPUfreq governor "conservative", much like the "ondemand"
governor, sets the CPU depending on the current usage. It differs in
behaviour in that it gracefully increases and decreases the CPU speed
rather than jumping to max speed the moment there is any load on the
CPU. This behaviour more suitable in a battery powered environment.
The governor is tweaked in the same manner as the "ondemand" governor
through sysfs with the addition of:
freq_step: this describes what percentage steps the cpu freq should be
increased and decreased smoothly by. By default the cpu frequency will
increase in 5% chunks of your maximum cpu frequency. You can change this
value to anywhere between 0 and 100 where '0' will effectively lock your
CPU at a speed regardless of its load whilst '100' will, in theory, make
it behave identically to the "ondemand" governor.
down_threshold: same as the 'up_threshold' found for the "ondemand"
governor but for the opposite direction. For example when set to its
default value of '20' it means that if the CPU usage needs to be below
20% between samples to have the frequency decreased.
2.6 Interactive
---------------
The CPUfreq governor "interactive" is designed for latency-sensitive,
interactive workloads. This governor sets the CPU speed depending on
usage, similar to "ondemand" and "conservative" governors. However,
the governor is more aggressive about scaling the CPU speed up in
response to CPU-intensive activity.
Sampling the CPU load every X ms can lead to under-powering the CPU
for X ms, leading to dropped frames, stuttering UI, etc. Instead of
sampling the cpu at a specified rate, the interactive governor will
check whether to scale the cpu frequency up soon after coming out of
idle. When the cpu comes out of idle, a timer is configured to fire
within 1-2 ticks. If the cpu is very busy between exiting idle and
when the timer fires then we assume the cpu is underpowered and ramp
to MAX speed.
If the cpu was not sufficiently busy to immediately ramp to MAX speed,
then governor evaluates the cpu load since the last speed adjustment,
choosing th highest value between that longer-term load or the
short-term load since idle exit to determine the cpu speed to ramp to.
There is only one tuneable value for this governor:
min_sample_time: The minimum amount of time to spend at the current
frequency before ramping down. This is to ensure that the governor has
seen enough historic cpu load data to determine the appropriate
workload. Default is 80000 uS.
2.7 MinMax
---------------
The CPUfreq governor "maxmin" tries to minimize the frequency jumps by limiting
the selected frequencies to only two frequencies: either the min or the max
frequency of the current policy. The frequency is raised or lowered according
to the current load and the 'up_threshold' and 'down_threshold'.
Its parameters and implementation are similar to that of conservative.
It does not have the freq_step parameter as it jumps right from min to max
and vice-versa.
The sampling_down_factor, unlike conservative, will count the minimal number
of samplings since the last time we saw the 'up_threshold' load on the CPU.
Hence it is set to higher default and acts as a limiter not to do too many
frequency jumps without hurting the performance.
2.8 SmartassV2
---------------
The CPUfreq governor "smartassV2", like other governors, aims to balance
performance vs battery life by using low frequencies when load is low and
ramping the frequency when necessary, fast enough to ensure responsiveness.
The implementation of the governor is roughtly based on the idea of interactive.
The idle loop is used to track when the CPU has idle cycles. The idle loop will
set a relatively high rate timer to sample the load when appropriate, the timer
will measure the load since it was set and schedule a work queue task to do the
actual frequency change when necessary.
The most important tunable is the "ideal" frequency: this governor will aim
for this frequency, in the sense that it will ramp towards this frequency much
more aggresively than beyond it - both when ramping up from below this frequency
and when ramping down from above this frequency. Still, note, that when load is
low enough the governor should choose the lowest available frequency regardless
of the ideal frequency and similarly when load is consistently high enough the
highest available frequency will be used.
Smartass also tracks the state of the screen, and when screen is off (a.k.a
sleep or suspended in the terms of this governor) a different ideal frequency
is used. This is the only difference between the screen on and screen off
states. Proper tuning of the awake_ideal_freq and sleep_ideal_freq should
allow both high responsiveness when screen is on and utilizing the low
frequency range when load is low, especially when screen is off.
Finally, smartass is a highly customizable governor with almost everything
tweakable through the sysfs. For a detailed explaination of each tunable,
please see the inline comments at the begging of the code (smartass2.c).
Click to expand...
Click to collapse
❦ Carenel ❦ 15th October ❦ 3 Battery Saving Editions ❦ Optimized Kernel Settings ❦
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Flashed every kernel under the sun and battery life still isn't meeting up to expectations?
Want to master kernel control apps but haven't got a clue where to begin or how each setting will effect your device?
Afraid of undervolting or underclocking in case your devices performance begins to lack or becomes somewhat unstable?
Kernel related dilemma? In need of urgent assistance?
Are those 'kernel blues' getting you down?
Nobody there to hold you through the night?
We're Carenel.
We give a F!ck about you & your I9100!
We are proficient and have heaps of experience playing around with numerous kernels, day-in, day-out. We want to pass that knowledge on to those who seek it!
Furthermore, please feel free to share what you know with one and other and help each other out as much as you can. We're not available 24hrs, but this thread is.
Together, let's create a tight-knit community where everybody feels welcome and nobody walks away disappointed.
We'll keep the thread free from bullsh!t, though if anyone has information so that we might expand/update/correct the thread, feel free to throw some our way. We welcome it with open arms, legs, mouths, asses, etc.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Recarenelmendations
(Customized Set-ups to Suit Your Needs)
Recommended Kernels: Dorimanx & Dream-IRC
Recommended App (Kernel & Voltages): ExTweaks
Stock 'n Roll
Stock Feel. Increased Battery Life.
CPU
Governors: Conservative
Frequencies: 200MHz-1200MHz
CPU Steps: 6 - (1200->100-6-Steps)
Smooth Scaling Level: 500MHz
Hotplug Mode: CPU Hotplug (default)
Load_H0: 65%
Load_L1: 50%
Min_RQ: 2
Load_RQ: 20
Rate: 100 jiffies
Freq_Min: 800000KHz
Max CPU Clock: Dual Core Mode
SCHED_MC: 0
Gentle_Fair_Sleepers: OFF
ARCH_POWER: ON
CPU Undervolting: No Undervolting - (Voltages applied through setCPU)
CPU Idle Mode: AFTR + LPA (default)
Deep-Sleep! CPU Governor: Conservative
GPU
Mali Touch Boost Level: Step3
GPU Freq Step1: 160MHz
GPU Freq Step2: 200MHz
GPU Freq Step3: 267MHz
GPU Voltage Level 1: 850mV
GPU Voltage Level 2: 950mV
GPU Voltage Level 3: 1050mV
GPU Threshold 1-Up: 60%
GPU Threshold 2-Down: 65%
GPU Threshold 2-Up: 70%
GPU Threshold 3-Down: 75%
GPU Threshold 3-Up: 80%
Screen
Min_BL: 10
Min_Gamma: 1
Max_Gamma: 20
LCD-Powersaving Mode: ON
Touch Screen Lock Freq: 500000MHz
Misc
Android Logger: OFF
I/O Scheduler: VR
zRAM: 300MB
Voltages - (Applied via any voltage control app)
200MHz (825mV), 500MHz (925mV), 800MHz (975mV), 1000MHz (1075mV), 1200MHz (1200mV)
Mystical Illusionary
Smoke & Mirrors. Battery + Performance. Flawless Victory.
CPU
Governors: ondemand
Frequencies: 200MHz-1000MHz
CPU Steps: 6 - (1200->100-6-Steps)
Smooth Scaling Level: 200MHz
Hotplug Mode: CPU Hotplug (default)
Load_H0: 70%
Load_L1: 65%
Min_RQ: 2
Load_RQ: 20
Rate: 100 jiffies
Freq_Min: 800000KHz
Max CPU Clock: Dual Core Mode
SCHED_MC: 0
Gentle_Fair_Sleepers: OFF
ARCH_POWER: ON
CPU Undervolting: No Undervolting - (Voltages applied through setCPU)
CPU Idle Mode: AFTR + LPA (default)
Deep-Sleep! CPU Governor: Conservative
GPU
Mali Touch Boost Level: Step2
GPU Freq Step1: 160MHz
GPU Freq Step2: 200MHz
GPU Voltage Level 1: 850mV
GPU Voltage Level 2: 900mV
GPU Threshold 1-Up: 70%
GPU Threshold 2-Down: 75%
GPU Threshold 2-Up: 80%
GPU Threshold 3-Down: 85%
GPU Threshold 3-Up: 90%
Screen
Min_BL: 0
Min_Gamma: 0
Max_Gamma: 15
LCD-Powersaving Mode: ON
Touch Screen Lock Freq: 500000MHz
Misc
Android Logger: OFF
I/O Scheduler: Deadline
zRAM: 300MB
Voltages - (Applied via any voltage control app)
200MHz (800mV), 500MHz (925mV), 800MHz (950mV), 1000MHz (1050mV), 1200MHz (1175mV)
How Low Can You Go?
Battery Maximization. Zero Calories.
CPU
Governors: Pegasusq
Frequencies: 200MHz-800MHz
CPU Steps: 15 - (1500->100-15-Steps)
Smooth Scaling Level: 200MHz
Hotplug Mode: CPU Hotplug (default)
Load_H0: 70%
Load_L1: 65%
Min_RQ: 2
Load_RQ: 20
Rate: 100 jiffies
Freq_Min: 700000KHz
Max CPU Clock: Dual Core Mode
SCHED_MC: 0
Gentle_Fair_Sleepers: ON
ARCH_POWER: ON
CPU Undervolting: No Undervolting - (Voltages applied through setCPU)
CPU Idle Mode: AFTR + LPA (default)
Deep-Sleep! CPU Governor: Conservative
GPU
Mali Touch Boost Level: Step2
GPU Freq Step1: 160MHz
GPU Freq Step2: 200MHz
GPU Voltage Level 1: 850mV
GPU Voltage Level 2: 900mV
GPU Threshold 1-Up: 80%
GPU Threshold 2-Down: 85%
GPU Threshold 2-Up: 90%
Screen
Min_BL: 0
Min_Gamma: 0
Max_Gamma: 10
LCD-Powersaving Mode: ON
Touch Screen Lock Freq: 300000MHz
Misc
Android Logger: OFF
I/O Scheduler: SIO
zRAM: Disabled
Voltages - (Applied via any voltage control app)
200MHz (800mV), 300MHz (825mV), 400MHz (850mV), 500MHz (925mV), 600MHz (925mV), 700MHz (950mV), 800MHz (950mV)
NOTE:
If you're feeling adventurous and fancy attempting a combination of settings for yourself to share with the rest of us, here's a general outline of what you need to know to get you started. Feel free to use my editions as a template if need be. If your 'personalized editions' make us happy, we'll add it to our lists and credit you for your hard work!
Many thanks!
Governors
BALANCED/FLEXIBLE
Ondemand
Lulzactive + (Lulzactive App)
Pegasusq
OndemandX
Hotplug
Userspace
Intellidemand
InteractiveX
SavagedZen
Wheatley
PERFORMANCE DRIVEN
Performance
Lagfree
Badass
Interactive
Lionheart
LionheartX
Smartass
SmartassV2
BrazilianWax
BATTERY FRIENDLY
Conservative
Scary
Sleepy
Lazy
Powersave
I/O Schedulers
BALANCED/FLEXIBLE
Deadline
BFQ
PERFORMANCE DRIVEN
VR
CFQ
BATTERY FRIENDLY
SIO
NOOP
Underclocking (CPU/GPU)
The stock CPU frequencies for the Galaxy SII are 200MHz-1200MHz. The stock GPU frequencies are 160MHz-267MHz. These however can be underclocked and in fact many actually do.
Advantages:
Better battery life.
Device stays cooler.
Theoretically increasing your devices lifespan.
Disadvantages:
Performance not meeting expectations.
Before deciding to underclock your CPU/GPU, you should always consider what you use your device for. If you don't play games that are GPU heavy, you might find that underclocking to 100MHZ-160MHZ will have no noticeable effect on performance. The same can be said for CPU underclocking. If you use your phone for general tasks that don't involve a heavy CPU load, dropping your maximum frequency down to 1000MHz or even 800MHz has no noticeable disadvantages.
Underclocking isn't risky and can only serve to provide better battery life, with the only occasional flaw being a dip in performance depending on the weight of performed tasks. The recommended method of finding which underclocking combination is best for you is just to play around with the settings until you find your perfect match!
REMEMBER THE FOLLOWING: If you're Governor and I/O Scheduler aren't optimized for performance, underclocking may lower performance to an unacceptable level. Please take this into consideration.
Undervolting (CPU/GPU)
Many folks will disagree that undervolting has a drastic effect on battery life; we disagree. EVERY LITTLE HELPS.
To put simply, 'mV' stands for the amount of battery the CPU/GPU consumes, per frequency. The higher the frequency, the more battery life your device consumes. So if every frequency step voltage was decreased by -100mV (at least), that's a lot of battery saved over time and we highly recommend it!
Advantages:
Better battery.
Device stays cooler.
Disadvantages:
If done correctly, there are no disadvantages to undervolting.
If you're looking to create your own customization's, our recommendation is to browse our 'Recarenelmendations' section above and use our undervolting values as a template. Each Galaxy device has been manufactured with slight differences, thus some are more capable of successfully operating under lower voltages levels than others. If you find yourself experiencing SOD's/Freezes/Lag/Reboots, we recommend you raising all our voltages up by +25mV until your device is stable. Once stability is found, begin playing with each voltage until it can be reduced no more (you should expect freezes, there's a 99.9% probability that they will occur.) Through trial & error, we can begin to understand your device better, pushing it to its limited, thus minimalism applied voltages & maximizing battery life whilst also reducing heat during heavy load times.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kernel Cleaning
(Recommended when changing kernel)
Samsung Ultimate Kernel Cleaning Script ICS
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Kernel Control Apps
ExTweaks
setCPU
N.E.A.K Configurator Pro
Voltage Control
AnTuTu CPU Master Pro
Thoravukk Control
NoFrills
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Battery Saving Methods
Make sure that your data's off when your screen is off. (This option is available via AOKP Roms, otherwise use: Green Power)
Only use battery friendly apps; for instance we don't use Facebook as we've read that it actually drains A LOT of battery... we use Fast Pro for this same reason. (It also has a dark theme, which is good for battery.)
Uninstall unnecessary apps/system apps using Titanium Backup. I found this, this might deem knowledgeable: APK Removal List
Use Autostarts to disable apps and system apps from automatically starting-up in the background.
Use a darker wallpapers.
Apply a lower screen brightness for darker environments or use: Lux to intelligently control your screen brightness.
Use a dark theme, such as: Blue Infinitium
Sync only what you need. Nothing more, nothing less.
Be sure to use Betterbatterystats to determine what is keeping your phone awake when your screen is off & not deep sleeping.
Use Badass Battery Monitor to detect which apps/system apps inflict the largest drain. If you can target these rogue apps, you can uninstall or replace them.
Lastly, be intuitive. Be overly cautious about what might be sucking up your battery and eventually you'll get things right.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Hi-Scores
Submitted by: hospital349
STOCK BATTERY - 1650 mAh
Music: 3.5 hours, Youtube: 15 mins, Vimeo: 10 mins, Chrome: 30-40 mins, Texts: 75-100, Phone Calls: 30 mins, Friendcaster: 10 mins, XDA: 15 mins, Games: 15 mins, Camera: 15 photos, Airdroid (PC to Android file transfer): 1gb+. Syncing: Chrome, Gmail, Haxsync, Dropbox. WiFi: 15 mins. H+/3g: Nearly always.
Note: (The small dip in the graph is when I had to replace a system file and set permissions. I was forced to restart my phone at this point. I have accounted for this.)
Nice, amazing work mate. This will be very helpful for all NEAK users. Keep up the good work.
bajee11 said:
Nice, amazing work mate. This will be very helpful for all NEAK users. Keep up the good work.
Click to expand...
Click to collapse
Thanks buddy. I really appreciate your efforts. Constantly awaiting your next results.
It was your thread which initially triggered my interest in underclocking/volting to begin with.
Thanks for making an impact.
i still cant figure out where i can
Dynamic Hotplugging: Enabled
can you enlighten me?
Dimenxion said:
i still cant figure out where i can
Dynamic Hotplugging: Enabled
can you enlighten me?
Click to expand...
Click to collapse
Sure - it's located in the Misc Options section of the N.E.A.K. Config Pro App.
N.E.A.K. Configurator Pro App > Misc Options > Dual Core Settings > Dynamic Hotplug
I've adjusted the Lulzactive App Settings slightly, as I posted my old settings instead of the ones I'm currently using. Be sure to correct them on your device.
Enjoy!
Dimenxion said:
i still cant figure out where i can
Dynamic Hotplugging: Enabled
can you enlighten me?
Click to expand...
Click to collapse
2nd Core - Play Store Or NEAK Config Pro
thanks for the help!
Hello,
Thanks for sharing your experience with the others, that is great. I'm gonna check your config soon. But when I started using NEAK kernel and tried UV/UC I experienced many wakelocks (when unlocking lock screen the phone hanged).
I came back to default configuration (without UC/UV with Lulzactive/VR with default settings) but it didn't help. Only then that I disabled "Ext4 Boost", the hangs disappeared. Have you ever experienced this? Is it possible that Ext4 Boost caused this problem or maybe it helped by accident? I'm on XXLPS sammy rom.
__________________
Phone : i9100 Samsung Galaxy S II
Rom : XXLPS/NEAK 2.0.4
Apps: NEAK Configurator Pro, Tegrak Lulzactive 1.1, Voltage Control Extreme.
Many40 said:
Hello,
Thanks for sharing your experience with the others, that is great. I'm gonna check your config soon. But when I started using NEAK kernel and tried UV/UC I experienced many wakelocks (when unlocking lock screen the phone hanged).
I came back to default configuration (without UC/UV with Lulzactive/VR with default settings) but it didn't help. Only then that I disabled "Ext4 Boost", the hangs disappeared. Have you ever experienced this? Is it possible that Ext4 Boost caused this problem or maybe it helped by accident? I'm on XXLPS sammy rom.
__________________
Phone : i9100 Samsung Galaxy S II
Rom : XXLPS/NEAK 2.0.4
Apps: NEAK Configurator Pro, Tegrak Lulzactive 1.1, Voltage Control Extreme.
Click to expand...
Click to collapse
Interesting. You might be better off asking Simone about this one. Seems very strange because I haven't experienced problems since day one. Deep sleep is existent. Wakelocks are non-existent. I'm sure someone on the N.E.A.K. ICS thread will be able to help you.
Yeah, another thread about kernels! Me iz liking. You should post it at teamhydra
Sent from my i9100. No HyDrOG3NICS? No SWAGG..
Paradoxxx said:
Yeah, another thread about kernels! Me iz liking. You should post it at teamhydra
Sent from my i9100. No HyDrOG3NICS? No SWAGG..
Click to expand...
Click to collapse
Hahaha, I know. kernel overkill, right?
Thanks buddy. I appreciate your support.
I still intend to give Netchips kernel a whirl once you release the new update. It's been a while since I last used stock.
I'll be sure to add the thread to teamhydra shortly. Congrats on getting it up and running btw. Great work man.
voltage
hi
Voltages:
800(200), 925(500), 950(800), 1050(1000), 1175(1200)
what should i set 100 MHz to? 950?
frankey81 said:
hi
Voltages:
800(200), 925(500), 950(800), 1050(1000), 1175(1200)
what should i set 100 MHz to? 950?
Click to expand...
Click to collapse
Hey. My recommendation is not to use 100mhz at all, as it wouldn't be battery friendly. Especially because 200mhz is at 800mV, which is the lowest you can go.
You should set your CPU frequency at 200mhz-1200mhz for optimal performance and battery.
Be sure to follow my settings exactly, as they're stable. Even the slightest change might cause instability, unless you're sure you know what you're doing.
Nice done. Im using Siyah but my configs are similar to u so i can give u some question.
I often get around 5 hours of screen on time but i domt play game so I think it's equal.
Your CPu undervolt is amazing, i never thought of setting 200mhz to 800, it's insane, congrats dude
By the way, i only set lulz app cpu load to 75%, i think 90% is too high, but many people do so, so it.must be a reason, can u tell me why ?
By the wau,ur pump up and pump down step is 2 - 1, exactly like.mine , im just too confused about its rate, I set it to 35000, 25000, which of it do u think is best ?
Sent from my GT-I9100 using XDA
randomseasons said:
Nice done. Im using Siyah but my configs are similar to u so i can give u some question.
I often get around 5 hours of screen on time but i domt play game so I think it's equal.
Your CPu undervolt is amazing, i never thought of setting 200mhz to 800, it's insane, congrats dude
By the way, i only set lulz app cpu load to 75%, i think 90% is too high, but many people do so, so it.must be a reason, can u tell me why ?
By the wau,ur pump up and pump down step is 2 - 1, exactly like.mine , im just too confused about its rate, I set it to 35000, 25000, which of it do u think is best ?
Sent from my GT-I9100 using XDA
Click to expand...
Click to collapse
Thanks! Did you try these settings out by the way? (I would love to know if they work for Siyah kernel users.)
I was amazed too. I took a shot in the dark and was shocked and overjoyed that I could get 200mhz down to bare minimum. Very useful indeed!!
90% cpu load is the most I can go with my settings, anything over that freezes my phone. I used to set it to 60%, 70%, 80%... but I really just wanted to maximize battery life. From what I understand, 90% cpu load will restrict high CPU frequencies until they're REALLY needed, so 1000MHZ & 1200MHZ will only kick in at the last minute, (saving tons of juice). I haven't had any issues and would recommend that you definitely give 90% a try. Experimentation is the key.
I know I set my up_sample & down_sample to 20000us, 40000us - but it really is just about what works for you. If I drastically change either one, I'll get varying performances. They generally stay static, unless I have a major breakthrough or blindly test out a theory.
The only things that really change in my overall settings are: Voltages, Dynamic Hotplug Thresholds, GPU mV and perhaps the cpu load (in some situations).
Hope this helps you.
Hi, thanks for the settings info, getting great battery life similar to stock . Only thing I noticed is that wi-fi drops out quite frequently. Would that be anything to do with UV?
mario999 said:
Hi, thanks for the settings info, getting great battery life similar to stock . Only thing I noticed is that wi-fi drops out quite frequently. Would that be anything to do with UV?
Click to expand...
Click to collapse
Very doubtful dude. Haven't had problems my end. Was having some Wi-Fi problems on the previous version of N.E.A.K. (2.0.3), but they were all cleared up by 2.0.4.
Which ROM are you using? Could be a ROM issue? or even a possible compatibility issue between your current ROM and your internet router/modem?
Otherwise, I have no freakin' idea man. Very strange.
Great settings mate. Using this with my new 2000 mAh battery and HyDrOG3N-ICS 05.05. So far seems good and stable.
Hello everybody!
I'm having a strange problem: if i have the phone locked, with screen turned off for a while, in my pocket, when i turn it on again it is very slow. It takes about 30 seconds to come back to usual performance.
For example, if i unlock the phone and i go to SMS or WhatsApp, the keyboard (Swiftkey) it's so slow that i have to wait for every word to complete, before i can type another one.
After 30 seconds from the unlock the phone works ok.
The problem started when i've upgraded from CyanogenMod 7.1 to CyanogenMod 7.2 and i've created an sd-ext partition (in ext3 format, on a class 6 SD) to move there some apps.
I've got an HTC Desire HD.
I noticed the same problem when i was using a MIUI rom with the CPU Tuner app: i supposed that it slowed down too much the CPU when the screen was locked, so that it took a lot to come back to normal performances. But, now, i don't have that app installed and, looking ad Exaile 2 when i unlock my phone, it seems that CPU frequencies it's a 1 Ghz and even RAM usage is ok.
What could it be?
I have to wipe and install CM 7.2 from scratch?
Or could it be the sd-ext partition with apps on?
Thank you in advance!
Try installing set CPU or CPU Tuner again and set the CPU to something high when the phone is asleep. If that then works and it is no longer laggy try reverting it to a lower speed.
Not sure about the sd ext partition,, but yes, try a full wipe and install 7.2.
Sent from a dream.
Just change the governor. Governor is interactive by default i think.
Had the same problem after weeks i just changed governor to ondemand and everything was prefect.
Sent from my Desire HD using Tapatalk 2
Try installing set CPU or CPU Tuner again and set the CPU to something high when the phone is asleep. If that then works and it is no longer laggy try reverting it to a lower speed.
Click to expand...
Click to collapse
When i had it, i never configured because i am too lazy
I'll give a try, thanks!
Not sure about the sd ext partition,, but yes, try a full wipe and install 7.2.
Click to expand...
Click to collapse
I do not really want to, but i think too that could be a good test
Just change the governor. Governor is interactive by default i think.
Had the same problem after weeks i just changed governor to ondemand and everything was prefect.
Click to expand...
Click to collapse
Good tip!
My governor is "interactive" too, infact. I'm changin it to "ondemand".
Does anyone have a table that explain the difference between governors?
I'm on ARHD and the same started all of a dudden a few months ago. I had the same governor and settings for months without change and this still started. I changed governors (ondemand, smoothass, smartass, etc.) but it still happens sometimes. Not ver often but sometimes.
sberla54 said:
Good tip!
My governor is "interactive" too, infact. I'm changin it to "ondemand".
Does anyone have a table that explain the difference between governors?
Click to expand...
Click to collapse
Here you go
7. CPU Scaling Governors
CPU governors control exactly how the CPU scales between your “max” and “min” set frequencies. Most kernels have “ondemand” and “performance.” The availability
ondemand – Available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point (see “up threshold” in Advanced Settings), ondemand will rapidly scale the CPU up to meet demand, then gradually scale the CPU down when it isn't needed.
interactive – Available in newer kernels, and becoming the default scaling option in some official Android kernels. The interactive governor is functionally similar to the ondemand governor with an even greater focus on responsiveness.
conservative – Available in some kernels. It is similar to the ondemand governor, but will scale the CPU up more gradually to better fit demand. Conservative provides a less responsive experience than ondemand, but can save battery.
performance – Available in most kernels. It will keep the CPU running at the “max” set value at all times. This is a bit more efficient than simply setting “max” and “min” to the same value and using ondemand because the system will not waste resources scanning for CPU load.
powersave – Available in some kernels. It will keep the CPU running at the “min” set value at all times.
userspace – A method for controlling the CPU speed that isn't currently used by SetCPU. For best results, do not use the userspace governor.
smartass – Included in some custom kernels. The smartass governor effectively gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.
Click to expand...
Click to collapse
Here as well
CPUFreq governors in the Android Kernel
=======================================
+ performance
The CPUfreq governor "performance" sets the CPU statically to the highest frequency within the borders of scaling_min_freq and scaling_max_freq.
+ powersave
The CPUfreq governor "powersave" sets the CPU statically to the lowest frequency within the borders of scaling_min_freq and scaling_max_freq.
+ userspace
The CPUfreq governor "userspace" allows the user, or any userspace program running with UID "root", to set the CPU to a specific frequency by making a sysfs file "scaling_setspeed" available in the CPU-device directory.
+ ondemand
The CPUfreq governor "ondemand" sets the CPU depending on the current usage. To do this the CPU must have the capability to switch the frequency very quickly. There are a number of sysfs file accessible parameters: sampling_rate, show_sampling_rate_min, up_threshold, ignore_nice_load, sampling_down_factor.
+ conservative
The CPUfreq governor "conservative", much like the "ondemand" governor, sets the CPU depending on the current usage. It differs in behaviour in that it gracefully increases and decreases the CPU speed rather than jumping to max speed the moment there is any load on the CPU. This behaviour more suitable in a battery powered environment. The governor is tweaked in the same manner as the "ondemand" governor through sysfs with the addition of: freq_step & down_threshold
+ interactive
The CPUfreq governor "interactive" is designed for latency-sensitive, interactive workloads. This governor sets the CPU speed depending on usage, similar to "ondemand" and "conservative" governors. However, the governor is more aggressive about scaling the CPU speed up in response to CPU-intensive activity. The tuneable value for this governor are: min_sample_time & go_maxspeed_load
+ smartass (By [email protected])
The smartass governor is a complete rewrite of the interactive governor. CPU spends much more time at the lower frequencies for improved battery life. It gives the phone an automatic Screen Off profile, keeping speeds at a minimum when the phone is idle.
+ savagedzen (By [email protected])
SavagedZen is a governor based on the Smartass governor. With tweaks to paramaters which control how much and how fast cpu ramps up/down. Main difference versus Smartass is that cpu ramps down not in fixed steps, but based on cpu load heuristics, i.e. when cpu load falls below threshold (min_cpu_load), cpu immediately ramps down to a frequency derived from the measured load.
+ interactiveX (By [email protected])
Modified version of interactive with suspend code which locks at lowest clock speed when screen is off. Has a sleep+awake profile, meaning you don't need to set up manual profiles, it will lock at your minimum frequency during screen off
Click to expand...
Click to collapse
andreasy said:
I'm on ARHD and the same started all of a dudden a few months ago. I had the same governor and settings for months without change and this still started. I changed governors (ondemand, smoothass, smartass, etc.) but it still happens sometimes. Not ver often but sometimes.
Click to expand...
Click to collapse
Me too i didn't changed the governor, but in my case, a ROM upgrade and a sd-ext creation are some major changes that can affect performances...
l33ch0r said:
Here you go
Here as well
Click to expand...
Click to collapse
Thank you l33ch0r!
There doesn't seem to be much difference between "ondemand" and "interactive"; regarding to this documentation, "interactive" seems more quick.
Anyway, i've changed my governor to "ondemand" and i must say that all yesterday the phone has been fast and responsive. I'll keep you updated!
Thank you very much!