CPU Governors, I/O Schedulers, Overclocking/Undervolting Explained

Search This thread

-Harsh-

Senior Member
Jul 16, 2012
929
1,094
Rajkot
I know this kinda thread can be found easily on net, but i will keep it updated with new governors and i/o schedulers..

This is just for people who are curious what is the difference between all of them.

CPU Governors Explained:

THE USUAL GOVERNORS

1- OnDemand
2- Interactive
3- Performance
4- Powersave
5- Conservative
6- Userspace

OTHER GOVERNORS

1- OnDemandX
2- InteractiveX
3- Badass
4- Lagfree
5- Scary
6- Lazy
7- Lionheart
8- SmartassV2
9- Wheatley
10- Intellidemand
11- Lulzactive
12- Sakuractive


THE USUAL GOVERNORS

1: OnDemand Governor:

This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.

OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.

This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.

2: Interactive Governor:

Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.

3: Performance Governor:

This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).

4: Powersave Governor:

The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.

5:Conservative Governor:

This biases the phone to prefer the lowest possible clockspeed as often as possible. In other words, a larger and more persistent load must be placed on the CPU before the conservative governor will be prompted to raise the CPU clockspeed. Depending on how the developer has implemented this governor, and the minimum clockspeed chosen by the user, the conservative governor can introduce choppy performance. On the other hand, it can be good for battery life.

6: Userspace Governor:

This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.


OTHER GOVERNORS

1: OnDemandX:

Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers.

2: InteractiveX:

InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.

3: Badass
Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 1080Mhz and therefore use less power. To trigger a frequency increase, the system must run a bit @ 1080MHz with high load, then the frequency is bumped to 1350MHz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 2-5 seconds, depending on the load your system is experiencing).

You can tweak the Phase 2 (1080MHz) and Phase 3 (1350MHz) via sysfs (if you don't know, then just leave it alone)

4: Lagfree:

Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.

5: Scary

A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance.

6: Lazy:

This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.

7: Lionheart:

Lionheart is a conservative-based governor which is based on samsung's update3 source.
The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.

8: SmartassV2:

Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.

9: Wheatley:

in short words this govenor is build on “ondemand” but increases the C4 (the sleep state) state time of the CPU and doing so trying to save juice. So the results show that Wheatley works as intended and ensures that the C4 state is used whenever the task allows a proper efficient usage of the C4 state. For more demanding tasks which cause a large number of wakeups and prevent the efficient usage of the C4 state, the governor resorts to the next best power saving mechanism and scales down the frequency. So with the new highly-flexible Wheatley governor one can have the best of both worlds. Obviously, this governor is only available on multi-core devices.

10: Intellidemand:

Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.

11: Lulzactive:

This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.

12: Sakuractive:

This driver mimics the frequency scaling behavior in "on demand" but with several key differences. First is that frequency transitions use the CPUFreq table directly, instead of incrementing in a percentage of the maximum available frequency. Second "sakuractive" will offline auxillary CPUs when the system is idle, and online those CPUs once the system becomes busy again. This last feature is needed for architectures which transition to low power states when only the "master" CPU is online, or for thermally constrained devices.(thanks mirajkar.aniket232)


I/O Schedulers Explained

I/O:- short form of Input & Output

I/O Scheduler:- Input/output (I/O) scheduling is a term used to describe the method computer operating systems decide the order that block I/O operations will be submitted to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.

I/O schedulers can have many purposes depending on the goal of the I/O scheduler, some common goals are:

- To minimize time wasted by hard disk seeks.
- To prioritize a certain processes' I/O requests.
- To give a share of the disk bandwidth to each running process.
- To guarantee that certain requests will be issued before a particular deadline.

1: Noop:

Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.

Advantages:
Serves I/O requests with least number of cpu cycles. (Battery friendly?)
Best for flash drives since there is no seeking penalty.
Good throughput on db systems.

Disadvantages:
Reduction in number of cpu cycles used is proportional to drop in performance.


2: Deadline:

Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.

Advantages:
Nearly a real time scheduler.
Excels in reducing latency of any given single I/O.
Best scheduler for database access and queries.
Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
Like noop, a good scheduler for solid state/flash drives.

Disadvantages:
When system is overloaded, set of processes that may miss deadline is largely unpredictable.


3: CFQ:

Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.

Advantages:
Considered to deliver a balanced i/o performance.
Easiest to tune.
Excels on multiprocessor systems.
Best database system performance after deadline.

Disadvantages:
Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.


5: SIO:

Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.

Advantages:
Simple, so reliable.
Minimized starvation of requests.

Disadvantages:
Slow random-read speeds on flash drives, compared to other schedulers.
Sequential-read speeds on flash drives also not so good.


6: V(R):

Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.

Advantages:
May be best for benchmarking because at the peak of it's 'form' VR performs best.

Disadvantages:
Performance fluctuation results in below-average performance at times.
Least reliable/most unstable.

7: FIOPS (fair in out performance scheduler) :

A new I/O scheduler was presented for the Linux kernel. This new scheduler, FIOPS, is designed around modern flash-based storage devices like solid-state drives. This new I/O scheduler is designed around the following assumptions about Flash-based storage devices: no I/O seek time, read and write I/O cost is usually different from rotating media, time to make a request depends upon the request size, and high through-put and higher IOPS with low-latency, ehich leads to a better battery consumption. The design of the Fair IOPS scheduler is similar to CFQ but the dispatch decision is made according to IOPS instead of slice, while being backed by a simple algorithm
 
Last edited:

-Harsh-

Senior Member
Jul 16, 2012
929
1,094
Rajkot
Guide on Overclocking/Undervolting !!

Most of the people here in xda do know about overclocking and stuffs but still there are many who are so eager to overclock their beast . Hence this guide.

I have given some good info below about these stuffs as far as i can , you can always use google to get further details.


What is overclocking?

Overclocking is the process of making a computer or component operate faster than the specified clock frequency by the manufacturer by modifying system parameters. One of the most important techniques is running at a higher clock rate (more clock cycles per second; hence the name "overclocking")
Operating voltages may also be changed (increased), which can increase the speed at which operation remains stable.

Advantage:

You can get more performance from your chipset, you can see the visible changes in application execution time and much more like instant response time.

Disadvantage:

* Overclocking is always risky if something is configured improperly and may also result in permanent damage of your hardware. As long as it is done safely you are good to go.
* You may see some increased power consumption.
* Extreme overclocking might kill your hardware.

Undervolting :

The process where you provide less voltage to your cpu rather than the stock voltage.

Advantage:

* Reduced heat from your device.
* Good battery life.

Disadvantage:

* Extreme undervolting will make your device unstable and some times even end up with a boot loop.

Requirements:

1. Kernel with overclocking support.
2. Tools to change frequency/voltage.(you can use the app of your choice here).
3. set cpu and stability test to test the stability of CPU.
4. Some patience.


Step 1:
Set the current clock you want to test via any tool. (Select max frequency in cpu tab).
Step 2:
Open set cpu's cpu stress test and run it for atleast 10 minutes. If you didnt get any errors on those 10 minutes and the test completed successfully then the clock is ready for daily use
Step 3:
Now for undervolting use the same tools and reduce the voltage by -25mv.
Repeat step 2.
you can reduce the voltage further by -25 mv after the completion of stress test until the app become unstable. (Advanced users can try reducing -50mv )
Step 4:
Repeat step 1,2 and 3 for every possible cpu clock you see in tools.



Note the stable cpu voltage for every clock, once you finish testing all your clock values save it as a profile in nstools and set it on boot.
Voila !!! now you have finished overclocking/ under voting your beast The very same guide can be used to underclock you cpu.


Notes:

1. Not all chips are capable of running at higher speeds like 1800 mhz. Those speeds are highly experimental.
2. Recomended max overclocking is 1600 mhz.
3. If your device gets hotter allow the device to cool for few minutes before starting the test.
4. Combining the overclocking and undervolting will give you the best of both the worlds.

Overclocking GPU

Simple: Gpu oc is the same as Cpu oc : higher is the frequency, higher is the power consumption there are several frequencies in the kernel :

On stock kernel there's only the gpu 3d freq scaling :
3D freq:
266 mhz
228 mhz
200 mhz

2D : 200 mhz only for core 0 and 1 ( there are 2 2D cores and 1 3D core)

On custom kernel, there is the gpu oc, that add some freq for 2D and 3D

3D : 300 and 320 mhz
2D : 228 and 266 mhz

In some kernel ( Forzaferrarileo and Novakernel)
There's also the 2D freq scaling

So in custom kernel with gpu 2D/3D scaling the freq are these :

3D

160 mhz (in some kernel)
200
228
266
300
320

Those are the common freq for 2D. If the kernel doesn't have 2D scaling , only one freq is used. else all the frequencies can be used.

Thanks Forzaferrarileo
 
Last edited:

UchihaDareNial

Senior Member
Feb 2, 2012
1,098
207
Seremban
Can you please credit to the owner that make this?

I think I have saw this in Xperia mini,mini pro,Live with Walkman,and Active community...
 
  • Like
Reactions: 18lama

-Harsh-

Senior Member
Jul 16, 2012
929
1,094
Rajkot
Could you explain fiops and sakuractive as well.
Tnx

Sent from my LT26i using Tapatalk 2

yea incoming soon !!

I think I have saw this in Xperia mini,mini pro,Live with Walkman,and Active community...

no chance mate, i have not even COPIED it from any xda thread, and i don't even know if the above community exsists..

I found this all at various sites on nte like droidforum and rootzwiki etc.. and not a single thread is copied entirely !! various parts are joint together :)
Hope m not offending anyone !!
 

UchihaDareNial

Senior Member
Feb 2, 2012
1,098
207
Seremban
yea incoming soon !!



no chance mate, i have not even COPIED it from any xda thread, and i don't even know if the above community exsists..

I found this all at various sites on nte like droidforum and rootzwiki etc.. and not a single thread is copied entirely !! various parts are joint together :)
Hope m not offending anyone !!

Ohh I see...well,if that so,nice job (y)

Sent from my LT28h using xda premium
 

ksbz

New member
Mar 31, 2013
2
0
I am confuse in selection of Rom .can any one suggest me .I want to increase my battery performance .should I use xzxperience2????

Sent from my LT26i using xda app-developers app
 

Aniket

Senior Member
Jan 21, 2013
581
236
27
Mumbai
I am confuse in selection of Rom .can any one suggest me .I want to increase my battery performance .should I use xzxperience2????

Sent from my LT26i using xda app-developers app

Try cm10.1/pac/slimbean with beta 2 kernel and sakuractive-fiops combination for better battery life.

Sent from my Xperia S using xda premium
 

tradingtoms

Member
Apr 9, 2013
45
4
Thanks for this useful post - now i can understand what the devs of various ROMs and kernels are talking about. :D
 

agentinani047

Senior Member
Apr 18, 2013
55
7
Epic! Thanks!
Which ROM,governor and scheduler are you using currently?

Sent from my Xperia S using xda app-developers app
 

Top Liked Posts

  • There are no posts matching your filters.
  • 56
    I know this kinda thread can be found easily on net, but i will keep it updated with new governors and i/o schedulers..

    This is just for people who are curious what is the difference between all of them.

    CPU Governors Explained:

    THE USUAL GOVERNORS

    1- OnDemand
    2- Interactive
    3- Performance
    4- Powersave
    5- Conservative
    6- Userspace

    OTHER GOVERNORS

    1- OnDemandX
    2- InteractiveX
    3- Badass
    4- Lagfree
    5- Scary
    6- Lazy
    7- Lionheart
    8- SmartassV2
    9- Wheatley
    10- Intellidemand
    11- Lulzactive
    12- Sakuractive


    THE USUAL GOVERNORS

    1: OnDemand Governor:

    This governor has a hair trigger for boosting clockspeed to the maximum speed set by the user. If the CPU load placed by the user abates, the OnDemand governor will slowly step back down through the kernel's frequency steppings until it settles at the lowest possible frequency, or the user executes another task to demand a ramp.

    OnDemand has excellent interface fluidity because of its high-frequency bias, but it can also have a relatively negative effect on battery life versus other governors. OnDemand is commonly chosen by smartphone manufacturers because it is well-tested, reliable, and virtually guarantees the smoothest possible performance for the phone. This is so because users are vastly more likely to ***** about performance than they are the few hours of extra battery life another governor could have granted them.

    This final fact is important to know before you read about the Interactive governor: OnDemand scales its clockspeed in a work queue context. In other words, once the task that triggered the clockspeed ramp is finished, OnDemand will attempt to move the clockspeed back to minimum. If the user executes another task that triggers OnDemand's ramp, the clockspeed will bounce from minimum to maximum. This can happen especially frequently if the user is multi-tasking. This, too, has negative implications for battery life.

    2: Interactive Governor:

    Much like the OnDemand governor, the Interactive governor dynamically scales CPU clockspeed in response to the workload placed on the CPU by the user. This is where the similarities end. Interactive is significantly more responsive than OnDemand, because it's faster at scaling to maximum frequency.

    3: Performance Governor:

    This locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task, such as syncing email, and returns the CPU to the extremely efficient low-power state. This still requires extensive testing, and a kernel that properly implements a given CPU's C-states (low power states).

    4: Powersave Governor:

    The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.

    5:Conservative Governor:

    This biases the phone to prefer the lowest possible clockspeed as often as possible. In other words, a larger and more persistent load must be placed on the CPU before the conservative governor will be prompted to raise the CPU clockspeed. Depending on how the developer has implemented this governor, and the minimum clockspeed chosen by the user, the conservative governor can introduce choppy performance. On the other hand, it can be good for battery life.

    6: Userspace Governor:

    This governor, exceptionally rare for the world of mobile devices, allows any program executed by the user to set the CPU's operating frequency. This governor is more common amongst servers or desktop PCs where an application (like a power profile app) needs privileges to set the CPU clockspeed.


    OTHER GOVERNORS

    1: OnDemandX:

    Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers.

    2: InteractiveX:

    InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to better balance battery vs. performance. The InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.

    3: Badass
    Badass removes all of this "fast peaking" to the max frequency. On a typical system the cpu won't go above 1080Mhz and therefore use less power. To trigger a frequency increase, the system must run a bit @ 1080MHz with high load, then the frequency is bumped to 1350MHz. If that is still not enough the governor gives you full throttle. (this transition should not take longer than 2-5 seconds, depending on the load your system is experiencing).

    You can tweak the Phase 2 (1080MHz) and Phase 3 (1350MHz) via sysfs (if you don't know, then just leave it alone)

    4: Lagfree:

    Lagfree is similar to ondemand. Main difference is it's optimization to become more battery friendly. Frequency is gracefully decreased and increased, unlike ondemand which jumps to 100% too often. Lagfree does not skip any frequency step while scaling up or down. Remember that if there's a requirement for sudden burst of power, lagfree can not satisfy that since it has to raise cpu through each higher frequency step from current. Some users report that video playback using lagfree stutters a little.

    5: Scary

    A new governor wrote based on conservative with some smartass features, it scales accordingly to conservatives laws. So it will start from the bottom, take a load sample, if it's above the upthreshold, ramp up only one speed at a time, and ramp down one at a time. It will automatically cap the off screen speeds to 245Mhz, and if your min freq is higher than 245mhz, it will reset the min to 120mhz while screen is off and restore it upon screen awakening, and still scale accordingly to conservatives laws. So it spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance.

    6: Lazy:

    This governor from Ezekeel is basically an ondemand with an additional parameter min_time_state to specify the minimum time CPU stays on a frequency before scaling up/down. The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand. Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state on a step overriding sampling interval. Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always select the maximum frequency while the screen is off.

    7: Lionheart:

    Lionheart is a conservative-based governor which is based on samsung's update3 source.
    The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.

    8: SmartassV2:

    Version 2 of the original smartass governor from Erasmux. Another favorite for many a people. The governor aim for an "ideal frequency", and ramp up more aggressively towards this freq and less aggressive after. It uses different ideal frequencies for screen on and screen off, namely awake_ideal_freq and sleep_ideal_freq. This governor scales down CPU very fast (to hit sleep_ideal_freq soon) while screen is off and scales up rapidly to awake_ideal_freq (500 mhz for GS2 by default) when screen is on. There's no upper limit for frequency while screen is off (unlike Smartass). So the entire frequency range is available for the governor to use during screen-on and screen-off state. The motto of this governor is a balance between performance and battery.

    9: Wheatley:

    in short words this govenor is build on “ondemand” but increases the C4 (the sleep state) state time of the CPU and doing so trying to save juice. So the results show that Wheatley works as intended and ensures that the C4 state is used whenever the task allows a proper efficient usage of the C4 state. For more demanding tasks which cause a large number of wakeups and prevent the efficient usage of the C4 state, the governor resorts to the next best power saving mechanism and scales down the frequency. So with the new highly-flexible Wheatley governor one can have the best of both worlds. Obviously, this governor is only available on multi-core devices.

    10: Intellidemand:

    Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
    To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.

    11: Lulzactive:

    This new find from Tegrak is based on Interactive & Smartass governors and is one of the favorites.
    Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency.
    New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
    When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.

    12: Sakuractive:

    This driver mimics the frequency scaling behavior in "on demand" but with several key differences. First is that frequency transitions use the CPUFreq table directly, instead of incrementing in a percentage of the maximum available frequency. Second "sakuractive" will offline auxillary CPUs when the system is idle, and online those CPUs once the system becomes busy again. This last feature is needed for architectures which transition to low power states when only the "master" CPU is online, or for thermally constrained devices.(thanks mirajkar.aniket232)


    I/O Schedulers Explained

    I/O:- short form of Input & Output

    I/O Scheduler:- Input/output (I/O) scheduling is a term used to describe the method computer operating systems decide the order that block I/O operations will be submitted to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.

    I/O schedulers can have many purposes depending on the goal of the I/O scheduler, some common goals are:

    - To minimize time wasted by hard disk seeks.
    - To prioritize a certain processes' I/O requests.
    - To give a share of the disk bandwidth to each running process.
    - To guarantee that certain requests will be issued before a particular deadline.

    1: Noop:

    Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.

    Advantages:
    Serves I/O requests with least number of cpu cycles. (Battery friendly?)
    Best for flash drives since there is no seeking penalty.
    Good throughput on db systems.

    Disadvantages:
    Reduction in number of cpu cycles used is proportional to drop in performance.


    2: Deadline:

    Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.

    Advantages:
    Nearly a real time scheduler.
    Excels in reducing latency of any given single I/O.
    Best scheduler for database access and queries.
    Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
    Like noop, a good scheduler for solid state/flash drives.

    Disadvantages:
    When system is overloaded, set of processes that may miss deadline is largely unpredictable.


    3: CFQ:

    Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.

    Advantages:
    Considered to deliver a balanced i/o performance.
    Easiest to tune.
    Excels on multiprocessor systems.
    Best database system performance after deadline.

    Disadvantages:
    Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
    Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.


    5: SIO:

    Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.

    Advantages:
    Simple, so reliable.
    Minimized starvation of requests.

    Disadvantages:
    Slow random-read speeds on flash drives, compared to other schedulers.
    Sequential-read speeds on flash drives also not so good.


    6: V(R):

    Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.

    Advantages:
    May be best for benchmarking because at the peak of it's 'form' VR performs best.

    Disadvantages:
    Performance fluctuation results in below-average performance at times.
    Least reliable/most unstable.

    7: FIOPS (fair in out performance scheduler) :

    A new I/O scheduler was presented for the Linux kernel. This new scheduler, FIOPS, is designed around modern flash-based storage devices like solid-state drives. This new I/O scheduler is designed around the following assumptions about Flash-based storage devices: no I/O seek time, read and write I/O cost is usually different from rotating media, time to make a request depends upon the request size, and high through-put and higher IOPS with low-latency, ehich leads to a better battery consumption. The design of the Fair IOPS scheduler is similar to CFQ but the dispatch decision is made according to IOPS instead of slice, while being backed by a simple algorithm
    26
    Guide on Overclocking/Undervolting !!

    Most of the people here in xda do know about overclocking and stuffs but still there are many who are so eager to overclock their beast . Hence this guide.

    I have given some good info below about these stuffs as far as i can , you can always use google to get further details.


    What is overclocking?

    Overclocking is the process of making a computer or component operate faster than the specified clock frequency by the manufacturer by modifying system parameters. One of the most important techniques is running at a higher clock rate (more clock cycles per second; hence the name "overclocking")
    Operating voltages may also be changed (increased), which can increase the speed at which operation remains stable.

    Advantage:

    You can get more performance from your chipset, you can see the visible changes in application execution time and much more like instant response time.

    Disadvantage:

    * Overclocking is always risky if something is configured improperly and may also result in permanent damage of your hardware. As long as it is done safely you are good to go.
    * You may see some increased power consumption.
    * Extreme overclocking might kill your hardware.

    Undervolting :

    The process where you provide less voltage to your cpu rather than the stock voltage.

    Advantage:

    * Reduced heat from your device.
    * Good battery life.

    Disadvantage:

    * Extreme undervolting will make your device unstable and some times even end up with a boot loop.

    Requirements:

    1. Kernel with overclocking support.
    2. Tools to change frequency/voltage.(you can use the app of your choice here).
    3. set cpu and stability test to test the stability of CPU.
    4. Some patience.


    Step 1:
    Set the current clock you want to test via any tool. (Select max frequency in cpu tab).
    Step 2:
    Open set cpu's cpu stress test and run it for atleast 10 minutes. If you didnt get any errors on those 10 minutes and the test completed successfully then the clock is ready for daily use
    Step 3:
    Now for undervolting use the same tools and reduce the voltage by -25mv.
    Repeat step 2.
    you can reduce the voltage further by -25 mv after the completion of stress test until the app become unstable. (Advanced users can try reducing -50mv )
    Step 4:
    Repeat step 1,2 and 3 for every possible cpu clock you see in tools.



    Note the stable cpu voltage for every clock, once you finish testing all your clock values save it as a profile in nstools and set it on boot.
    Voila !!! now you have finished overclocking/ under voting your beast The very same guide can be used to underclock you cpu.


    Notes:

    1. Not all chips are capable of running at higher speeds like 1800 mhz. Those speeds are highly experimental.
    2. Recomended max overclocking is 1600 mhz.
    3. If your device gets hotter allow the device to cool for few minutes before starting the test.
    4. Combining the overclocking and undervolting will give you the best of both the worlds.

    Overclocking GPU

    Simple: Gpu oc is the same as Cpu oc : higher is the frequency, higher is the power consumption there are several frequencies in the kernel :

    On stock kernel there's only the gpu 3d freq scaling :
    3D freq:
    266 mhz
    228 mhz
    200 mhz

    2D : 200 mhz only for core 0 and 1 ( there are 2 2D cores and 1 3D core)

    On custom kernel, there is the gpu oc, that add some freq for 2D and 3D

    3D : 300 and 320 mhz
    2D : 228 and 266 mhz

    In some kernel ( Forzaferrarileo and Novakernel)
    There's also the 2D freq scaling

    So in custom kernel with gpu 2D/3D scaling the freq are these :

    3D

    160 mhz (in some kernel)
    200
    228
    266
    300
    320

    Those are the common freq for 2D. If the kernel doesn't have 2D scaling , only one freq is used. else all the frequencies can be used.

    Thanks Forzaferrarileo
    3
    Searching for a long time.. Finally got it.. U r awesome brotha... Going to study it now.... Hope i can understand all...

    Stock Xperia S With Some MoD

    I also feel good that i could be useful to such a helpful community of XS.. :)

    Sent From The Beast - Nexus 10
    2
    Updated second post with info on GPU overclocking ! :)
    2
    Could you explain fiops and sakuractive as well.
    Tnx

    Sent from my LT26i using Tapatalk 2

    yea incoming soon !!

    I think I have saw this in Xperia mini,mini pro,Live with Walkman,and Active community...

    no chance mate, i have not even COPIED it from any xda thread, and i don't even know if the above community exsists..

    I found this all at various sites on nte like droidforum and rootzwiki etc.. and not a single thread is copied entirely !! various parts are joint together :)
    Hope m not offending anyone !!