CPU Governors

Frequency scaling is the means by which the Linux kernel dynamically adjusts the CPU frequency based on usage of the device. Governors refer to schemes which dictate to the kernel how it should do these adjustments.

Contents

Governors

Performance

Performance, also referred to as "Always Max," forces the CPU to run at its maximum allowed frequency constantly.

Pro: Better performance and speed.

Con: High power consumption which translates to horrible battery life. Can cause device to overheat. If used for extended periods of time, it can lead to permanent physical damage.

Powersave

Powersave, sometimes called "Always Min," forces the CPU to run at its minimum allowed frequency constantly.

Pro: Minimal power consumption which translates to exceptional battery life.

Con: Poor performance and speed, laggy.

Userspace

Userspace is not a governor per-se, but instead allows for non-kernel daemons or apps with root permissions to control the frequency. Commonly seen as redundant and not useful since SetCPU and similar apps exist.

Pro: None.

Con: None.

Ondemand

Ondemand quickly scales up the CPU frequency once there is sufficient load, and then quickly scales down the frequency once the load is no longer present.

Pro: Good performance, decent battery life.

Con: CPU frequency can constantly shoot up and down, causing more power drain than staying at an "ideal" frequency.

Conservative

Conservative is the opposite of Interactive; it is slow to ramp up the frequency, then quickly drops the frequency once the CPU is no longer under a certain threshold of load.

Con: Slower to ramp up means that it can be laggier shortly after launching an intensive app, or waking the device.

Interactive

Interactive is the opposite of Conservative; it quickly ramps up to the maximum allowed frequency, then slowly drops the frequency once no longer under load.

Pro: Faster to ramp up and down than Conservative means a snappier response from the device.

Con: CPU will run quickly for a few moments after it is no longer needed to do so, resulting in longer periods of higher power consumption and heat generation.

Smartass

Theoretically a merge of the best properties of Interactive and OnDemand; automatically reduces the maximum CPU frequency when phone is idle or asleep, and attempts to balance performance with efficiency by focusing on an "ideal" frequency.

Pro: Usually yeilds higher performance than OnDemand and theoretically has better battery life than Interactive or OnDemand.

Con: Same as Interactive, the CPU will slowly ramp down after it is no longer needed (compared to its ramping-up speed). Might also go too low when asleep (an issue with other governor when a Sleep profile is used in apps such as SetCPU), causing the device to malfunction. Most common example is the screen not powering on when the power button is pressed or the phone begins ringing. Might also effect apps running in the background while sleeping.

Smoothass

A more aggressive version of Smartass that is very quick to ramp up and down, and keeps the idle/asleep maximum frequency even lower.

Pro: Theoretically better battery life than Smartass.

Con: Same as Smartass.

SmartassV2

A rewrite of Smartass that is easier for developers to program, and scales down quickly similar to Conservative. It has an "ideal" frequency which it will quickly ramp up to, then more slowly ramp up once past it, and vice-versa for down-ramping. A separate "ideal" frequency is used when the screen is off.

Pro: Same as Smartass, but theoretically better battery life and performance.

Con: Same as Smartass with the sleep state.

LagFree

LagFree, similar to Smartass but based on Conservative rather than Interactive, instantly jumps to a certain CPU frequency after the device wakes, then operates similar to Conservative. However, it has been noted as being very slow when down-scaling, taking up to a second to switch frequencies.

Pro: Reduces lag after waking the device, making for a more snappy experience.

Con: Can be slow to ramp up after the initial jump, and is very slow when down-ramping.

X Series

OnDemandX, InteractiveX and ConservativeX are unofficially updated editions of OnDemand, Interactive and Conservative (respectively). They are attempts to deprecate the older editions by removing some of the issues (mainly adding sleep-state aware profiles similar to Smartass). Newer versions, on multi-core devices, will disable unused cores during sleep state (drastically improving battery-life).

Pro: Theoretically leads to better performance and battery-life than any of the original versions

Con: Not always the case, but they can conflict with the originals and loading both can lead to odd device behavior. Older versions also suffer from the malfunctions which Smartass can experience.