Related
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!
DorimanX Stweaks Guide for the S2
Updated: 13/01/16
{
"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"
}
Picture from DorimanX website
Guides:Installation
Initial Setup
Stweaks Basics
Stweaks Advanced
My setup & Troubleshooting
Credits list
Useful links:
DorimanX Official by DorimanX(ICS-->JB)
DorimanX Unofficial builds by Cybernetus, Computoncio and DorimanX(JB-->KK)
DorimanX KK Unofficial builds by gsstudios (4.4.x)
DorimanX LP/MM Unofficial builds by gsstudios (5.1.x/6.0.1)
DorimanX JB Unofficial builds by chhapil (4.1.x/STOCK JB)
DorimanX JB Unofficial builds by GreekDragon (4.1.x/STOCK JB)
General how to go on kernel tunables
CPU governors and I/O scheduler guide
Unofficial DorimanX by Cybernetus download(Recommended for 4.4.X KK)
Unofficial DorimanX by Computoncio download(Recommended for 4.X.X JB/STOCK JB)
Official DorimanX download(OK on stock 4.1.2 and below)
Which version to get?
So all goes like this:
Unofficial builds by gsstudios - Development stopped in 2016
12.x support = 5.1.x, 6.0.1 maliv3 only! LATEST: DorimanX 12.0 by gsstudios - ROMS include Cyanogenmod 13, Cyanogenmod 12.1
11.x support = 5.1.x maliv3 only! LATEST: DorimanX 11.0 by gsstudios - ROMS include Cyanogenmod 12.1
10.x support = 4.3.y, 4.4.y maliv3 only! LATEST: DorimanX 10.45 by gsstudios - ROMS include Slimsaber 4.4.4, SlimKK, CM11, Omni 4.4
9.x support = 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv2 only! LATEST: DorimanX 9.45 by gsstudios - ROMS include CM10.1.3
8.x support = STOCK, 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv1(STOCK) maliv2 all the rest! LATEST: DorimanX 8.45 by gsstudios - ROMS include Stock 4.1.2 JB, NeatROM, Omega ROM
Unofficial builds by chhapil - Development stopped in 2016
8.x support = STOCK, 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv1(STOCK) maliv2 all the rest! LATEST: DorimanX 8.47 by chhapil - ROMS include Stock 4.1.2 JB, NeatROM, Omega ROM
Unofficial builds by GreekDragon - Development stopped in 2016
8.x support = STOCK, 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv1(STOCK) maliv2 all the rest! LATEST: DorimanX 8.70 by GreekDragon - ROMS include Stock 4.1.2 JB, NeatROM, Omega ROM
Unofficial builds by Cybernetus and Computoncio- Development stopped in 2014
All unofficial kernels support 4.4.y ROMS!
10.x support = 4.3.y, 4.4.y maliv3 only! LATEST: DorimanX 10.44 v008 by Cybernetus - ROMS include Slimsaber 4.4.4, SlimKK, CM11, Omni 4.4
9.x support = 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv2 only! LATEST: DorimanX 9.44 v005 by Computoncio - ROMS include CM10.1.3
8.x support = STOCK, 4.1.y, 4.2.y, 4.3.y, 4.4.y maliv1(STOCK) maliv2 all the rest! LATEST: DorimanX 8.44 v005 by Computoncio - ROMS include Stock 4.1.2 JB, NeatROM, Omega ROM
Official - Development stopped in 2013
9.x support = 4.1.y, 4.2.y, 4.3.y maliv2 only! LATEST: DorimanX 9.43 - ROMS include CM10.1.2
8.x support = STOCK, 4.1.y maliv2 only! LATEST: DorimanX 8.43 - ROMS include Stock 4.1.2
7.x support = STOCK, 4.1.y maliv1 only! LATEST: DorimanX 7.46 - ROMS include Stock 4.0.x, leaked 4.1.2
5.x support = 4.0.y, 4.1.2 no mali only! LATEST: DorimanX 5.92 - ROMS include Stock 4.0.x
mali = video driver (for new users that dont care to look for answers)
STOCK = Stock 4.1.2 Jellybean Update for s2
Click to expand...
Click to collapse
I've complete the basic guide on Stweaks. Now I have to start on the advanced guide!
I was looking at other device threads when I noticed that there was no guide explaining all of the things you can do in dorimanx. There were guides on how to tune other kernels but NOT dorimanX. This is well needed thread that is long overdue and should have been created ages ago. So please, be patient.
Changelog:
13/01/16:
- Added GreekDragon DorimanX JB builds into kernel list
05/05/15:
- Added a troubleshooting guide on dorimanx kernel and stweaks
- Improved kernel version guide (Added examples of ROMs)
26/04/15:
- Officially finished basic guide on Stweaks
- Overhaul of OP (Now there's a guide on what version to use)
25/04/15:
- Unofficially finished basic guide on Stweaks
Installation
I won't include a guide on how to root your phone or how to put the kernel onto your phone. I assume you already know how to root your phone.
Picture coming soon
Step 1:
Reboot your phone to recovery
Step 2
Select install zip
Step 3
Select the storage location
Step 4
Find DorimanX kernel zip
Step 5
Confirm to flash
Step 6
Let it finish flashing
Step 7
Reboot your phone to system
Initial Setup
When your phone is rebooting, you'll notice a loading bar under your phone's logo and then this screen will pop up:
No need to worry as that is the DorimanX boot/splash screen. If your phone can get past this and boot into your OS, congratulations. DorimanX has been successfully installed.
To double check if your kernel has changed, go to your phone's settings, about phone. Then scroll down until you see something similar to this:
Now lets go to the app drawer. You will see an app called Stweaks. This is the app you want to tweak DorimanX kernel.
Here is how the app looks like. It may be complicated for beginners but I will guide you through how to use it
Stweaks Basics
Note: This is the i9100 version of dorimanx stweaks. I will not make a guide for the newer dorimanx stweaks app since I don't have the LG G2! However, if someone can provide screenshots, I'm sure I can do something about it!
CPU
Boot CPU frequency:
The CPU frequency that your phone will run at while booting or at startup. Increase this for faster boot speed, decrease for better battery life and stability.
My Recommendation: Leave it to defaults
Boost CPU frequency:
The CPU frequency that your phone will run whenever there is a sharp increase in CPU load. Increase this for faster responsiveness, decrease for better battery life. Please note that you can't set this value higher than the max cpu frequency. It's COMMON-SENSE!
My Recommendation: Leave it to defaults
Max Normal Frequency:
The CPU frequency that your phone will run before going to max frequency. This won't do much to your phone's CPU frequency, so it's best to leave it to defaults unless underclocking.
My Recommendation: Leave it to defaults
Max OC Frequency:
The overall max CPU frequency your phone will run at. Increase this for better responsiveness and processing speed, decrease if you want better battery life.
My Recommendation: Leave it to defaults unless you want to overclock or underclock
Min Frequency:
The minimum CPU frequency your phone will run at. Increase this for better responsiveness and processing speed, decrease if you want better battery life.
My Recommendation: Leave it to defaults unless you want to overclock or underclock
CPU-VOLTAGE
This section of Stweaks allow you to undervolt and overvolt your CPU. Please note that undervolting (UV) your CPU will decrease phone stability if set too low, whereas overvolting (OV) will decrease your CPU's lifespan and generate more heat.
CPU Voltage main switch:
Ticking this enables set CPU voltages. If your phone reboots from instability, stweaks will most likely be resetted to protect your phone from any further problems.
Check CPU Voltage Group:
Using this button checks what CPU voltage group your CPU is using. The Galaxy S2 has 5 different CPU types around the world, the most common is number 3 and the most stable is number 4 and 5. Number 2 and 1 are old CPU types and need more voltage to be stable. If your CPU type is 1 or 2, don't UV much otherwise you'll get SODs. Remember that the higher the number, the more undervolt you can apply on your CPU. If you are downloading someone else's profile and they have a different CPU voltage type, try to avoid using it. Higher voltage require higher voltages to be stable, but at the cost of heat and battery life. Please be careful if you are considering to overclock your CPU!
If you want to undervolt, here are some safe voltages you can set (see link below), just set the sliders to the same voltages for the corresponding frequencies:
https://docs.google.com/spreadsheets/d/1MlV6Tbfo_7_QEUnTkfpdioSSPSDSWPJLRxL8Z00A8yA/edit?usp=sharing
CPU-TUNING (AWAKE)
Default CPU governor:
The default CPU governor when your phone is awake (screen is on). DorimanX kernel by default gives users an option to change to various governors such as HYPER, Ondemand and NeoX. Changing this will affect your phone's responsiveness and multitasking performance. For more information about governors, visit my guide: http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
My Recommendation: The default governor (HYPER for the i9100) is responsive and stable for everyday usage, you can change it if your want.
Hotplug_Enable:
The hotplugging governor for your phone. You can choose from Alucard hotplug, Intellihotplug, enabled auto and disabled.
My Recommendation: Leave it to defaults. Enabled Auto setting will select the best hotplugging governor for your device.
Gov Policy Install:
This applies all the changes to the CPU governor settings and tunables. It is required by the user to press this if they want to keep the CPU settings.
Up Threshold:
Measured as percentage, when load on CPU is equal or above this threshold, your CPU will scale up.
Lower value = early scale up, and vice versa. (Applies only to HYPER, Ondemand, Intellidemand, PegasusQ, Conservative, Sleepy and zzmanX)
Default value = 60%
My Recommendation: Change it to 70% for better balance between battery life while keeping good performance.
Up Threshold at min freq sleep:
This threshold is used as up threshold while sampling rate is at frequencies less than freq_for_responsiveness. Above that, normal up_threshold is used.
Lower value = early scale up, and vice versa. (Applies only to HYPER, Ondemand, PegasusQ)
Default value = 50%
My Recommendation: Leave to defaults
Sampling rate sleep:
This factor determines how often the governor should poll for CPU usage in terms of frequency and load percentage to make scaling decisions.
Lower value = early scale up, and vice versa. (Applies only to HYPER, Ondemand, Intellidemand, PegasusQ, Conservative, Nightmare, Darkness Sleepy and zzmanX)
Default value = 60000uS
My Recommendation: Leave to defaults
Freq for responsiveness sleep
Long story short, this is setting is the frequency before the CPU goes to lower frequencies. It prevents any lag spikes from happening.
Lower value = More battery life, but more lags! (Applies only to HYPER, PegasusQ and Nightmare)
Default value = 400000kHz
My Recommendation: Leave to defaults
Down threshold sleep:
This is the same as the up_threshold but for the opposite direction.
Lower value = Frequencies reduced faster, and vise versa. (Applies only to HYPER, Ondemand, Intellidemand, PegasusQ, Conservative, Nightmare, Darkness Sleepy and zzmanX)
Default value = 30%
My Recommendation: Leave to defaults
CPU-TUNING (SLEEP)
Settings are pretty much the same as the awake CPU governor settings, but there are slight changes to the CPU governor tunables (more info on that later).
Deep-Sleep CPU governor:
The default CPU governor when your phone is in deep sleep or standby (screen is off). DorimanX kernel by default gives users an option to change to various governors such as HYPER, Ondemand and NeoX. Changing this will affect battery life and stability. For more information about governors, visit my guide: http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
My Recommendation: The default governor (Ondemand for the i9100) is responsive and stable for everyday usage, you can change it if your want.
IO
Kilobytes To Read-Ahead:
This only applies to the external sd card. This setting determines the kilobytes to read-ahead for your external sd card. Changing this will affect the transfer speeds to your phone's external sd card.
My Recommendation: Leave it to defaults. Auto setting will select the best setting for your device.
Default Awake IO scheduler:
This will set the default IO scheduler when your phone is awake (screen-on). There are many IO schedulers included with dorimanX kernels such as SIO, ZEN, BFQ and CFQ. Changing this will affect transfer speeds, phone responsiveness and load times. For more information about IO schedulers, visit my guide here: http://forum.xda-developers.com/general/general/ref-to-date-guide-cpu-governors-o-t3048957
My Recommendation: You can leave it to the default IO scheduler. I'm sure that the scheduler dorimanX chooses is stable, so if you don't know much about IO schedulers, leave it to defaults. However, I do recommend changing it to a simpler scheduler such as SIO and ZEN which have low overheads and less IO lantency.
Standby and Deepsleep IO scheduler:
The default IO scheduler when your phone is on standby or in deepsleep (screen off).
My Recommendation: Keep it the same as the awake IO scheduler. You can make it different from the awake scheduler if you really want to (but I don't recommend this).
Memory
AUTO OOM
Stands for Automatic low memory management, this allows the low memory management settings to be applied automatically or to take effect on your phone.
Default: Ticked
My Recommendation: Keep it ticked.
OOM Level Screen ON
The setting for the level of low memory management when screen is on. More aggressive settings leads to more free RAM but more killed apps.
Default: Aggressive
My Recommendation: Change it to medium as I believe it's the sweet spot for our phone.
OOM Level Screen OFF
The setting for the level of low memory management when screen is off. Same scenario applies where more aggressive settings leads to more free RAM but more killed apps.
Default: Medium
My Recommendation: Leave to defaults.
GPU
VPLL MODE
Ticking this box allows users to overclock the gpu even further than the default allowed frequencies. Please note that higher frequencies need more voltage, but there is the risk of damaging your GPU if too excessive.
Default: Unticked
My Recommendation: Keep this unticked. This settings is for the advanced overclockers and and tweakaholics. It is too risky keeping this enabled
GPU utilization timeout
This settings changes the CPU utilization timeout calculation. Basically this tunes the ramp up aggresiveness for the GPU, much like the CPU thresholds. Smaller values give faster GPU response but more battery drainage and vice versa.
Default: 400MSec
My Recommendation: Keep to default value.
GPU frequency steps
Dorimanx Kernel includes 5 GPU steps. These steps allow the GPU to scale frequencies efficiently and is originally made to save battery when not busy.
My Recommendation: Keep to default values unless you want to overclock.
GPU voltage steps
Complementing the frequencies, these settings are the GPU voltages for each step. Much like CPU voltages, settings these values too high will result in damage to the GPU, while not having enough voltage will result in instability.
My Recommendation: Keep to default values unless you want to overclock.
Screen
Min BL
Stands for minimum brightness level. Higher value will result in staying in the lowest brightness level for brighter conditions.
Default: 30
My Recommendation: Keep to default values.
Min Gamma
The setting to adjust minimum brightness level.
Default: 1
My Recommendation: Keep to default values.
Max Gamma
The setting to adjust minimum brightness level.
Default: 23
My Recommendation: Keep to default values.
Other settings will be explained in advanced guide!
Sound
Headphone Amplifier:
This setting allows you to adjust the headphone amplification level. Increase this if you want your headphones to sound louder.
My Recommendation: Keep to Disabled or Reset unless you want to boost headphone volume. I don't really recommend increasing this value.
Volume levels and Gain Controls:
These settings should be pretty straightforward, they're clearly labeled. Increase these values to boost the recording/playback volumes.
My Recommendation: Keep values to 0dB unless you want to boost headphone volume. I don't personally increase these values.
BLN
BLN stands for Backlight notification, meaning that your phone's buttons will light up whenever your phone gets a notification.
BLN
Tick it to enable Backlight notification. Please note that BLN will increase your phone's battery drainage when enabled.
My Recommendation: I don't personally enable BLN. Enable it if you want to.
BLN effect
This setting will set LED behavior for BLN, if BLNWW (BLN without wakelock, without getting CPU out of deep sleep) is on, the effect can only be steady. Options include steady, breathing and blinking.
My Recommendation: I don't personally enable BLN. Enable it if you want to.
Notification Timeout
This setting determines how long the Backlight Notification will stay on for. Time ranges from never to 2 hours.
My Recommendation: I don't personally enable BLN. But keeping it to a shorter value will save you battery.
Force LEDS disabled
The title says it all, forces your touch LEDs off if enabled.
My Recommendation: I don't personally enable BLN. Change the settings if you need this function
LED Timeout
This setting determines how long your phone's touch LEDs will light up when touched or when using touch screen.
Default value = 3 sec
My Recommendation: I don't personally enable BLN. Change the settings if you need this function
BLNWW
BLN Without Wakelock. This is a more battery efficient BLN but has less features than normal BLN. Enabling this (while BLN is also enabled) will let the CPU continue to sleep during BLN and save battery.
Default value = Ticked
My Recommendation: I don't personally enable BLN. Tick the setting if you need this function
The rest of the BLN settings should be pretty straightforward
Other
DorimanX has included scripts in his kernel that can optimize the phone by during certain conditions(time) or they can be applied straight away. The settings should be well explained anyway or straightforward.
Cron task main switch
Enable this to enable all set tasks. You need to enable this otherwise the set tasks will not be done!
My Recommendation: I don't personally enable Cron. Tick the setting if you need this function
Cron task main switch
Press this to test if the Cron task service is online or not. If the service is offline and you've enabled cron, the your ROM needs to be updated. (Busybox out of date)
Cron reset
Press this button to reset the scripts and jobs from kernel and to refresh the configuration. This will clear all your custom changes.
Tweaks
Cortexbrain is a script created by DorimanX that can manipulate many kernel settings based on chosen Stweaks profiles and settings and on screen state. It is so useful that the kernel enables it as default.
Cortexbrain-Background-Process
Enables or Disables the Cortexbrain background process.
Default: Enabled
My Recommendation: Leave it to enabled!
Check Background-Process
Checkes whether the Cortexbrain background process is running or not.
Android logger control
Controls what you can see in android logcat.
Default: AUTO
My Recommendation: Leave it to AUTO!
Modules will covered in advanced guide
Profiles
Here is the menu you want to manage all of the custom profiles available on stweaks
Profile Check:
Checks what profile you are currently running. By default, dorimanX kernel uses the default profile, and all changes will be saved there.
Profiles:
Include:
- Extreme battery
- Battery
- Default (Default)
- Performance
- Extreme Performance
I don't recommend uses the other profiles since they are outdated or can be further optimized.
Backup or Restore
This section allows users to backup and restore the settings in stweaks. It will take approximately 30secs for stweaks to restore user settings. The app will restart and the values should all be restored.
Settings Backup
Press this button to backup your stweaks settings. The settings will be saved in the internal sd card on your phone and will be called default.profile.backup. You can open this file in notepad or wordpad to edit settings externally
Settings Restore
Press this button to restore your stweaks settings. Read the description of the section about how long to wait and app behavior.
Dualboot
This section allow you to reboot your phone in several ways. DorimanX kernel supports dualbooting, and you can boot into 2 different roms during the boot process or via app. In order to boot into 2nd rom, the 2nd rom needs to be installed first. To install second rom, go into recovery and dualboot settings. The buttongs should be straightforward here
Bug-Report
Allows users to report any stweak/kernel specific bugs. Pressing this button will create a log file on your internal sd card which can be used to diagnose any kernel problems.
Partitition Status
Use this button to check your phone's partitions for errors (data, system, cache, efs and preload). This will NOT fix any errors, it will just check. To fix, backup your files with a backup app or making a nandroid backup (backup via recovery), then press the data and cache fix button located in the OTHER tab. USE IT AT YOUR OWN RISK SOME DATA MAY BE LOST DURING THE FIXING PROCESS! If there's any broken apps, reinstall them. If you get bootloop, reinstall rom. If you are stuck on boot, wipe phone than install rom. If it says your partitions are CLEAN, your partitions should have no errors. Usually if your partitions has errors, the stock browser will pop up saying that your partitions need to be fixed.
Kernel-Update
Allows to check of updates. Again this feature doesn't work properly anymore. And so ignore the message saying that there is a newer version of the kernel!
Extras
Gives info about your phone. That's about it!
For now, I will be taking a break. Wait to tomorrow for more info!
The following settings only apply to my personal dorimanx builds
Other
TCP algorithm
Congestion control strategies (or algorithms) are used by TCP, the data transmission protocol used by many Internet applications. The main goal of a TCP algorithm is to avoid sending more data than the network is capable of transmitting, that is, to avoid causing network congestion. Different algorithms respond differently to network loads, but they are all based on the same principle of avoiding network congestion.
This setting allows you to choose what TCP algorithm should be used for internet transmission. Changing this will result in changes to latency and download speeds (differences are marginal or hard to measure).
My Recommendation: Use Westwood or Cubic as they are the most reliable and best for performance.
Troubleshooting
This is the troubleshooting section of the guide. It is important that you read this first before blaming anyone else. Remember that in XDA, we are here to help each other.
Phone doesn't boot?
There may be a few cases where after you flash dorimanX kernel, your phone will fail to boot. This is quite a broad problem which has many aspects that may have caused this to occur. The common mistake is people do not read before they flash. THAT IS FINE, EVERYONE HAS TO START SOMEWHERE. Simply read the post regarding to kernel versions, download the correct version, put it on your phone, then flash the kernel.
If that doesn't work, we can narrow the problem down to the file you've downloaded or the custom recovery. There is chance that the kernel zip you've downloaded is corrupted. If that's the case, download it again. If you have trouble installing a kernel on your phone, flash a kernel .tar file via ODIN. Need a .tar file, have a look at my guide here:
Stweaks doesn't save my settings
Stweaks has safety features that safeguard your phone from any damage, especially from overvolting and overclocking. Because of this, the values will reset to defaults. As frustrating as it is, this is the only way for keeping your phone from its death. There are some cases where Stweaks doesn't even save your settings, this is usually because of the app it misbehaving (aka glitching) or it's because of permission issues. If you face this problem, try reflashing the kernel. Reboot your phone and see if it's working properly. If not, you may have issues with the permissions given to stweaks. Check if you've given root access to stweaks, without root, stweaks is useless.
After installing dorimanX kernel, my battery life has been horrible
If you face battery problems after installing dorimanX kernel, you can revert to a previous backup of your rom and kernel or flash a different kernel. Kernel developers don't intend to make kernels that use a lot of battery life, in fact, it's the opposite. Most issues regarding to battery life is usually caused by the kernel not being able to determine the new setup environment. Give your phone a few charge cycles before you make your judgement! Battery life is usually affected by the combination of both ROM + Kernel, so the combination is very important if you consider battery life!
My phone freezes when screen is off/Freezes when screen switches on
Also known as Sleep Of Death (or SOD), this can occur when a value changed regarding to the CPU or GPU is changed to unstable values. This issue commonly occurs when you undervolt your CPU too low, causing the CPU to be unstable. In a event such as this, force your phone to reboot by removing and re-inserting your phone's battery. After that, Stweaks would have already reset to defaults, removing any further instabilities. If you still consider changing those values, try reduce the amount of the value you are changing.
My phone reports that there is 16 CPU steps. Shouldn't there be less
I won't go too technical in this, but in simple, DorimanX include more than the required CPU frequency steps to allow CPU frequencies to scale efficiently. By samsung default, there is 5 CPU steps. The advantages of having 16 steps is that CPU scaling will be more efficient as the frequencies don't scale up or down too frequently as middle frequencies are used. Also, this allows the user to have more control over the overclocking and voltage capabilities over the CPU. You cannot change the number of steps unless you change the CPU governor to darkness.
Phone is laggy on boot up
Isn't it always the case that your phone is laggy when you first boot up your phone? Your phone needs to load all of the services and startup apps before you can fully use your phone. Give your phone a little patience then enjoy your new experience.
My Setup
Phone: Samsung Galaxy S2 i9100
DorimanX kernel version: 10.44 v008
Max CPU frequency: 1200mhz
Min CPU frequency: 200mhz
Undervolting: -20mV for each step
Awake CPU gov: HYPER
Sleep CPU gov: Ondemand
I/O scheduler: SIO
Credits List
- DorimanX (the master behind DorimanX kernel)
- Cybernetus (for providing the last real DorimanX kernel for i9100 users)
- Computoncio for also providing i9100 users dorimanx builds
- Other XDA members that I haven't listed
Guide updated on the 21/04/15. Please be patient. I have school work to worry about too.
gsstudios said:
Guide updated on the 21/04/15. Please be patient. I have school work to worry about too.
Click to expand...
Click to collapse
Good thread, will be very useful to "new" i9100 survivors who's looking for a way to tame one of best custom kernels around..
Just a suggestion, you might want to add informations about CPU Group limitation/compatibility related to OV/UV, as one setting wont fit all..
And also there is no safe voltage guidelines for each groups yet, just incase you wanna go there
Twiq said:
Good thread, will be very useful to "new" i9100 survivors who's looking for a way to tame one of best custom kernels around..
Just a suggestion, you might want to add informations about CPU Group limitation/compatibility related to OV/UV, as one setting wont fit all..
And also there is no safe voltage guidelines for each groups yet, just incase you wanna go there
Click to expand...
Click to collapse
I'll see what I can do today
Update: Added a few more descriptions. Still busy with school work....
@gsstudios
I recomand u to try to sec cpu thread shold (boost up) higher at 1000 mhz and 1.2 ghz ?
Why ?
I'm using my phone with maximium freq 800 mhz. And it is still smooth and fast. Even in game in which i normally had big heat up and batt drain is smooth. Phone is only laggy when mediascanner is running or app is installing. I'm olso using Live Wall Paper.
And why higher boost up not maximum freq 800 mhz ?
Because if u open app like Asphalt and Real Racing or Facebook [emoji14] phone will go to higher frequences but only when it is important. And imoprtant doesnt mean scrolling through app drawer
Wysłane z Cyano-fonika 11 nightly...
MikiGry said:
@gsstudios
I recomand u to try to sec cpu thread shold (boost up) higher at 1000 mhz and 1.2 ghz ?
Why ?
I'm using my phone with maximium freq 800 mhz. And it is still smooth and fast. Even in game in which i normally had big heat up and batt drain is smooth. Phone is only laggy when mediascanner is running or app is installing. I'm olso using Live Wall Paper.
And why higher boost up not maximum freq 800 mhz ?
Because if u open app like Asphalt and Real Racing or Facebook [emoji14] phone will go to higher frequences but only when it is important. And imoprtant doesnt mean scrolling through app drawer
Wysłane z Cyano-fonika 11 nightly...
Click to expand...
Click to collapse
Nice.
Guide updated today. Finished the basic guide to stweaks. Now will start to work on advanced guide. Please note that I will NOT go through every setting in stweaks, but I'm going to cover the more important ones instead. Advanced guide should be completed by next week.
@gsstudios
I have a little problem.
I have olny toutched setting u told that we can savety touch. And u have a problem. Whan i leave device without touching it , the cpu frequency wont go under 500 mhz. Is that normal ?
Wysłane ze Slim-Saberd-fonika 4.3.1 R powered by DorimanX v008 kernel
MikiGry said:
@gsstudios
I have a little problem.
I have olny toutched setting u told that we can savety touch. And u have a problem. Whan i leave device without touching it , the cpu frequency wont go under 500 mhz. Is that normal ?
Wysłane ze Slim-Saberd-fonika 4.3.1 R powered by DorimanX v008 kernel
Click to expand...
Click to collapse
What setting was this? Was it the up threshold. Try resetting back to default values to fix problem.
@gsstudios
Problem fixed.
Rebooted device and now it goes lower.
Ps. I use really big up threshold. 73 % : )
Wysłane ze Slim-Saberd-fonika 4.3.1 R powered by DorimanX v008 kernel
@gsstudios
Can u post in one od OP post full stock CPU voltages ? I noticed , that STweaks changed my setting a few times (lowerd my CPU freq and staff like that) and now I'm not sure if i have my lower volatages are set or they are resetted to default.
Wysłane ze Slim-Saberd-fonika 4.3.1 R powered by DorimanX v008 kernel
Great job ..will help lots of people...
Troubleshooting guide is up. Enjoy
Thnq
Overclocking
OnePlus 5T A5010
This is an overclock solution for the clock speed
limiter on the OnePlus 5T's second cluster of CPUs.
Requires root access, and advised to make
a TWRP recovery backup before attempting this.
ElementalX Kernel Manager
Download
X-plore File manager
Download
(Or root browser of your choice)
Build.prop Editor
Download
SSD Boost
Download
1.
First, open up X-plore and navigate to
root/system/etc/vendor/perf/targetconfig.xml
Long press on targetconfig.xml and hit edit text,
then scroll to the very bottom where
you'll find the 2361Mhz limiter.
Replace the config1 brackets with this
Code:
<Config1>
<TargetInfo
Target="msm8998"
NumClusters="2"
TotalNumCores="8"
SocIds="292,319"
SynCore="1"
CoreCtlCpu="-1"
MinCoreOnline="0"
CpufreqGov="1" />
<ClustersInfo Id="0" NumCores="4" Type="little" />
<ClustersInfo Id="1" NumCores="4" Type="big" />
</Config1>
If you've already flashed ElementalX kernel
you can reboot and skip step 2.
2.
Flash the custom kernel
from the ElementalX tab in the app.
Choose custom installation and proceed
to select the overclock frequency caps in recovery.
3.
Set the max frequencies to 2035 and 2592Mhz
and tick the on boot icon blue.
Disable core_control and enable msm_thermal
tick both set on boot.
Enjoy your heightened and less restricted
CPU speeds.
See below for tuning
You should notice a considerable boost
in performance with these apps/tweaks.
Hope this helps anyone that's been having trouble.
Feel free to comment whether or not it worked for you.
Buy me a beer:
PayPal.me/newton3788
ElementalX Tweaks
CPU Min/Max
Cluster 1: 518Mhz / 2.03Ghz
Cluster 2: 806Mhz / 2.59Ghz
CPU Boost
Core 0: 748Mhz / Core 4: 1.26Ghz
Duration: 100ms
GPU
GPU Boost: High
Interactive governor tunables
I've added the downloadable cluster profiles at the bottom.
You may place them in the ElementalX gov_profiles folder.
Cluster 1:
go_hispeed_load - 75
above_hispeed_delay - 20000 2035200:30000
timer_rate - 20000
hispeed_freq - 1670400
timer_slack - 50000
target_loads - 70 1804800:85 1900800:90
min_sample_time - 25000
Cluster 2:
go_hispeed_load - 85
above_hispeed_delay - 20000 2592000:50000
timer_rate - 20000
hispeed_freq - 2035200
timer_slack - 50000
target_loads - 80 2265600:85 2457600:90
min_sample_time - 25000
Build.prop Tweaks
ro.min.fling_velocity=6000
ro.max.fling_velocity=12000
persist.sys.composition.type=dyn
debug.composition.type=dyn
debug.egl.force_msaa=true
persist.sys.use_dithering=1
persist.sys.scrollingcache=1
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
ro.config.nocheckin=1
ro.kernel.android.checkjni=0
logcat.live=disable
wifi.supplicant_scan_interval=400
ro.media.enc.jpeg.quality=100
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
Open Xplore and edit
root/vendor/etc/build.prop
Replace and add these:
dalvik.vm.heapstartsize=32m
dalvik.vm.heapgrowthlimit=384m
dalvik.vm.heapsize=768m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=8m
dalvik.vm.heapmaxfree=16m
Developer Options
Force GPU Rendering off
Disable HW Overlays off
I've yet to find a solution for the random stuttering
But I'll add it if I do
newton378 said:
ElementalX Tweaks
Click to expand...
Click to collapse
Thanks for your tips here mate.
can you tell how s battery life affected
after this changes,i m trying your settings
but i faced deep sleep problems,do you face this too?
broky said:
Thanks for your tips here mate.
can you tell how s battery life affected
after this changes,i m trying your settings
but i faced deep sleep problems,do you face this too?
Click to expand...
Click to collapse
My device sleeps fine, I use the greenify app to hibernate apps on screen off. I can't account for any tweaks you've made to your device apart from what I've detailed here, mine is stock OOS with the EX kernel. Battery life drops depending on usage but you don't overclock to save battery.
edit: I was having battery problems but I've since flashed stock OOS and set everything back up, the battery life is superb with these governor profiles.
OK,I was just anxious about deep sleep,
I know overclockung drains battery.
Will keep on trying this
EDITnewton378
why don t you post this on oneplus 5 thread also, so more people see it and test it?
(just a suggestion)
broky said:
OK,I was just anxious about deep sleep,
I know overclockung drains battery.
Will keep on trying this
EDITnewton378
why don t you post this on oneplus 5 thread also, so more people see it and test it?
(just a suggestion)
Click to expand...
Click to collapse
http://imgur.com/a/Bhqj83w
No problem with deep sleep on my end.
newton378 said:
http://imgur.com/a/Bhqj83w
No problem with deep sleep on my end.
Click to expand...
Click to collapse
were you using the phone for 2 hours constantly?
or you left the phone idle?
broky said:
were you using the phone for 2 hours constantly?
or you left the phone idle?
Click to expand...
Click to collapse
Constant use and then idle for 10 minutes, deep sleep initiated quickly. No idea what problem you're having, sorry.
newton378 said:
Constant use and then idle for 10 minutes, deep sleep initiated quickly. No idea what problem you're having, sorry.
Click to expand...
Click to collapse
Testing as we talking,till now my deep sleep is fine.
Probably something else caused this,thanks for your response and help.
Update
newton378 said:
ElementalX Tweaks
CPU Boost
Core 0: 748Mhz / Core 4: 1.26Ghz
Duration: 100ms
Click to expand...
Click to collapse
you mean
A
0:748Mhz
1:0
2:0
3:0
4:1.26Ghz
5:0
6:0
7:0
or
B
0:748Mhz
1:748Mhz
2:748Mhz
3:748Mhz
4:1.26Ghz
5:1.26Ghz
6:1.26Ghz
7:1.26Ghz
??
i use configuration B and the device is faster than ever but i need to know if this is right:good:
broky said:
you mean
A
0:748Mhz
1:0
2:0
3:0
4:1.26Ghz
5:0
6:0
7:0
or
B
0:748Mhz
1:748Mhz
2:748Mhz
3:748Mhz
4:1.26Ghz
5:1.26Ghz
6:1.26Ghz
7:1.26Ghz
??
i use configuration B and the device is faster than ever but i need to know if this is right:good:
Click to expand...
Click to collapse
I don't think it matters as each cluster's frequencies are locked in sync. Core 1-3 follow 0 and 5-7 follow 4. Setting SynCore to 0 in targetconfig.xml is supposed to allow all cores to fluctuate on their own but it doesn't. Controller must be embedded deeper in the system.
broky said:
OK,I was just anxious about deep sleep,
I know overclockung drains battery.
Will keep on trying this
EDITnewton378
why don t you post this on oneplus 5 thread also, so more people see it and test it?
(just a suggestion)
Click to expand...
Click to collapse
I believe the phone doesn't enter deep sleep when charging due to rapid charging technology. Not sure if turning the phone off to charge helps it stay low power.
I figure this because I left it charging overnight and I had 33 minutes deep sleep and 10 hours of min frequency.
is it required elementalx kernel?cuz i'm using arter kernel right now
filandry said:
is it required elementalx kernel?cuz i'm using arter kernel right now
Click to expand...
Click to collapse
For the tweaks in the second post, no. If you want to have the overclocked CPU speeds, it's made possible by flashing EX kernel with custom settings.
I've tried flashing bluspark kernel over EX kernel and the result was relatively smoother than stock OOS with only EX kernel, however a lot of the settings in EXKM were automatically reverting to bluspark defaults when changed. I don't advise flashing custom kernels over each other unless you want to experiment and have a backup.
You can still remove the limiter on the second cluster's cores with the targetconfig.xml tweak for 2.45Ghz max clock speed.
newton378 said:
For the tweaks in the second post, no. If you want to have the overclocked CPU speeds, it's made possible by flashing EX kernel with custom settings.
I've tried flashing bluspark kernel over EX kernel and the result was relatively smoother than stock OOS with only EX kernel, however a lot of the settings in EXKM were automatically reverting to bluspark defaults when changed. I don't advise flashing custom kernels over each other unless you want to experiment and have a backup.
You can still remove the limiter on the second cluster's cores with the targetconfig.xml tweak for 2.45Ghz max clock speed.
Click to expand...
Click to collapse
so i only need this right?(for remove limiter)
First, open up X-plore and navigate to
root/system/etc/vendor/perf/targetconfig.xml
Long press on targetconfig.xml and hit edit text,
then scroll to the very bottom where
you'll find the 2361Mhz limiter.
Replace the config1 brackets with this
filandry said:
so i only need this right?(for remove limiter)
First, open up X-plore and navigate to
root/system/etc/vendor/perf/targetconfig.xml
Long press on targetconfig.xml and hit edit text,
then scroll to the very bottom where
you'll find the 2361Mhz limiter.
Replace the config1 brackets with this
Click to expand...
Click to collapse
Correct.
newton378 said:
Correct.
Click to expand...
Click to collapse
okay,will give it try :good:
edit :
yes it worked,although it's litte bit different from your guide..
here's my guide to remove second cluster cpu clock limiter (no overclock) using stock cpu clock speed :
First, open up Explorer and navigate to
/system/vendor/etc/perf
Find and Long press on targetconfig.xml and hit edit text,
then scroll to the very bottom where
you'll find the 2361600 limiter number and change it to 2467600
Save And Exit,and then reboot the devices
filandry said:
okay,will give it try :good:
edit :
yes it worked,although it's litte bit different from your guide..
here's my guide to remove second cluster cpu clock limiter (no overclock) using stock cpu clock speed :
First, open up Explorer and navigate to
/system/vendor/etc/perf
Find and Long press on targetconfig.xml and hit edit text,
then scroll to the very bottom where
you'll find the 2361600 limiter number and change it to 2467600
Save And Exit,and then reboot the devices
Click to expand...
Click to collapse
Yes, that would effectively raise the frequency cap but it works the same removing it altogether. Hence, cluster 1 doesn't have the max freq parameter in there and it can hit 1.9Ghz by default.
a10
does it work for android 10