[Android General] tusharchandra1992:
Overclocking Explained

First things first -> When you open the No-Frills CPU all for the first time, what you see there is not the current values. How can you know the CPU values when you din't yet give it the root permission (Since its the first run, it will ask for root permissions after you click on apply). So the values it shows there, aren't the ones which are driving the cpu now.

If you don't want to know what these governors are and just want to use whats best for you, here you go ->

Min Clock Freq -> 480 MHz

Max Clock Freq -> 1.104 GHz

Governer (While Gaming/Heavy CPU Intensive Usage) -> Interactive

Governer (When on low CPU tasks) -> Conservative

I/O Scheduler -> noop

Now lets see what these governor names mean (Source : http://androidforums.com/xperia-mini-all-things-root/513426-android-cpu-governors-explained.html),

OnDemand

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.

Conservative

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.

The Conservative Governor is also frequently described as a "slow OnDemand," if that helps to give you a more complete picture of its functionality.

Interactive

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

Unlike OnDemand, which you'll recall scales clockspeed in the context of a work queue, Interactive scales the clockspeed over the course of a timer set arbitrarily by the kernel developer. In other words, if an application demands a ramp to maximum clockspeed (by placing 100% load on the CPU), a user can execute another task before the governor starts reducing CPU frequency. This can eliminate the frequency bouncing discussed in the OnDemand section. Because of this timer, Interactive is also better prepared to utilize intermediate clockspeeds that fall between the minimum and maximum CPU frequencies. This is another pro-battery life benefit of Interactive.

However, because Interactive is permitted to spend more time at maximum frequency than OnDemand (for device performance reasons), the battery-saving benefits discussed above are effectively negated. Long story short, Interactive offers better performance than OnDemand (some say the best performance of any governor) and negligibly different battery life.

Interactive also makes the assumption that a user turning the screen on will shortly be followed by the user interacting with some application on their device. Because of this, screen on triggers a ramp to maximum clockspeed, followed by the timer behavior described above.

Performance

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.

UserSpace

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.

PowerSave

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

----------------------------------------------------------------------

Now coming to I/O Schedulers, this article best explains everything -> http://androidforums.com/triumph-all-things-root/444802-comparison-io-schedulers.html)

Now let me tell you why I gave the config (at the starting of the post). Making Min value less than 480 MHz leads to lag while Max Value more that 1.1 GHz makes the device unstable and may cause restarts unexpectedly. While gaming, you need the CPU to work at maximum clock speed so we have a choice from Performance or Interactive governer. But even in the game, there are periods where the CPU needs are low (typically after rendering everything, CPU requirements are reduced), so Performace governer will be a drain of battery. So Interactive is best for the purpose.Coming to I/O Schedulers, I would say noop is the best here owing to its fast Read and Write sequence.