[Captivate Android Development] scottcwhite:
Voltage control

Still researching and came across this just now which is the main thing I was looking to find. Definitions for the CPU Governors. Here's for anyone else who didn't already know like me.

performance - max speed all the time

powersave - lowest speed all the time

conservative - slow ramp-up

The next few get a bit more complex. ondemand, interactive, and smartass all try to pretty much do the same thing: perform well and power efficient. But the way they approach their goals are very different (ie. their algorithms are very different).

1) ondemand - been in linux for a long time and we got really smart linux kernel developers working on it and the code gets reviewed by really smart people. At the same time this governor is really designed to work on desktops, servers, phones, etc - a universal solution.

2) interactive - developed by CM (I think), tuned for performance. Instead of sampling at every interval like ondemand, it determines how to scale up when cpu comes out of idle.

3) smartass - developed by erasmux for his android kernel. Popular for its ability to use android's onboard suspend mechanism to keep the phone below a certain clock speed when screen is turned off. Also does slow ramp-up like the conservative governor.

Instead of the above, here are the three governors that I include in my custom kernels:

interactiveX - it's the interactive governor from CM, but I added suspend/wake logic so when the phone screen is off it runs at below 400Mhz. Also, I modified its code some more to minimize unnecessary cpu spikes above a certain threshold if kernel is heavily overclocked. (Most devices are unstable above a certain speed when it's heavily overclocked, and it's the quick jump to top speed that usually locks up the phone.)

I like this governor because it's simple and fast.

ondemandX - ondemand governor code from latest linux (3.0 at the moment) source *plus* the suspend/wake logic described above. No further optimization is done.

smartass - smartass code from erasmux, but I wasn't happy with its performance so I tuned it for quicker ramp up in speed. It has the same suspend/wake logic as ondemandX, and similar stability optimizations as interactiveX. (update: smartassV2 is new and currently I include the v2 in my kernels without optimizing further).

---------- Post added at 10:08 PM ---------- Previous post was at 09:58 PM ----------

Learning is fun!

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.

Always Max: The Performance “governor”, called “Always Max” on previous versions of SetCPU, allows your phone to run at maximum speed, ignoring all power saving functions.

Smoothass: The same as the Smartass “governor” But MUCH more aggressive & across the board this one has a better battery life that is about a third better than stock KERNEL.

InteractiveX: The same thing as interactive but it clocks the cpu down to 300mhz in sleep mode.

SmartassV2: Is a re-working of the original smartass governor, it allows for the CPU to scale through all frequencies from the lowest you set to the highest, based on the load occuring. Basically it scales CPU based on realtime needs of the system, saV2 supposedly incorporates some more agressive settings for screen off, and I believe quicker scaling than the original smartass.

Brazilianwax: Similar to smartassV2. More aggressive ramping, so more performance, less battery.

Lagfree: This driver is rather similar to the 'ondemand' governor both in its source code and its purpose, the difference is its optimization for better suitability in a battery powered environment. The frequency is gracefully increased and decreased rather than jumping to 100% when speed is required. (thanks to "Tallica" for finding this and sharing it with us)