This is a simple package for actively enforcing a CPU performance policy. It supports 4 policies at present: dynamic - the default policy, which monitors the amount of CPU idle time, and increases the CPU speed if it gets too low, or decreases it if it gets to high. This is a good balance between battery life and performance, but some applications may experience erratic performance because of the latency in speeding up the CPU. fixed - fixed CPU speed at a particular clock rate powersave - kernel cpufreq driver's "powersave" policy performance - kernel cpufreq driver's "performance" policy Speedfreq is a client-server program. At boot, the server, speedfreqd, is started by init, with the initial policy. The speedfreq client command can be used to change the current policy or other parameters, and query the current settings. If the server is started with "-u", non-root clients can change the current policy. This is useful for single-user machines (ie, typical laptops). When speedfreq is first run, it becomes a daemon. It listens for requests on a socket. Subsequent instances of speedfreq talk to the daemon to enact changes or query state. Speedfreq doesn't do any policy changes (for example, switching policies based on power source or remaining battery life) - it assumes that an external entity will know what to do and tell it to do it. If the daemon is started with "-u", then it will allow non-root users to set the current policy. For developers, there are two client libraries. C programmers can use libspeedfreq, while Python programmers can use the speedfreq module.