Thread (1 message) 1 message, 1 author, 2002-08-02

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help