Re: An embedded-Linux power-management framework
From: Hollis Blanchard <hidden>
Date: 2002-08-02 18:20:59
On Fri, 2002-08-02 at 14:11, Alan Cox wrote:
Take a look at cpufreq. The processor speed/voltage side is a solved problem with working code for x86 and ARM processors including the framework to adjust other devices. For example on ARM you have to frob with the RAM clocks. Cpufreq deals with it nicely both from user and kernel sides
cpufreq seems entirely aimed at CPU frequency control. Lowering your frequency will linearly decrease power, but will also linearly extend the duration of your task. Therefore it makes a lot of sense to lower voltage in addition to frequency. Some hardware drivers supported in the cpufreq code already scale down voltage as allowed by frequency reduction. However, it also makes sense to decrease frequency independent of voltage, since voltage transitions can have higher latency than frequency transitions. The idle task is a great place to lower frequency only, since you're not doing anything anyways (you're not extending the running time of a meaningful task), but you may not want to incur the overhead of a voltage transition every time you come in and out of it. There are also other frequencies that can affect power consumption, such as PLB (processor local bus) frequency. There are situations (especially in dedicated-purpose devices running only a few hand-written applications) in which it helps to change some of these values without changing the others. Changing them all according to a single variable (CPU core frequency) could be very limiting. To my knowledge the cpufreq code also does not allow for this flexibility, but certainly it would be nice to add it. (Perhaps we should continue the thread on linux-pm-devel or cpufreq instead of cross-posting everywhere?) -Hollis ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf