From: Todd Poynor <tpoynor@mvista.com>
To: Bruno Ducrot <ducrot@poupinou.org>
Cc: Pavel Machek <pavel@ucw.cz>,
cpufreq@lists.linux.org.uk, linux-pm@lists.osdl.org,
linux-kernel@vger.kernel.org
Subject: Re: PowerOP 2/3: Intel Centrino support
Date: Wed, 10 Aug 2005 15:53:05 -0700 [thread overview]
Message-ID: <42FA8551.3010002@mvista.com> (raw)
In-Reply-To: <20050810125848.GM852@poupinou.org>
Bruno Ducrot wrote:
> ATM I'm wondering what are the pro for those patches wrt current cpufreq
> infrastructure (especially cpufreq's notion of notifiers).
>
> I still don't find a good one but I'm surely missing something obvious.
This is lower layer than cpufreq, intended for use by cpufreq (and
potentially DPM and other frameworks, although moving embedded to use
cpufreq is certainly an option) to do the actual hardware modifications
at the lowest layer. There are no notifiers et al because the
higher-layer frameworks handle that portion of it. More on that in a
moment.
The main goal is to open up interfaces to operating points comprised of
arbitrary power parameters, as an alternative to the "cpu frequency"
parameter that cpufreq is designed around. In the desktop/server world
this may not be a high concern for two reasons: (1) although various
folks do want to manage voltages separately (namely so-called
"undervolting"), in most cases the safe answer is to stick with a
voltage preprogrammed into cpufreq that matches what the silicon vendor
as validated and supports; (2) various additional clocks, dividers, etc.
potential power parameters might exist in the hardware, but interfaces
for software control are often not readily available, and the associated
parameters are typically set once by the BIOS at boot time (possibly
with a menu to allow you override the defaults).
In the embedded world, however, silicon vendors typically produce
hardware that are run by, and specify validated operating points that
are comprised of, 6-7 basic parameters (clocks, voltages, dividers,
etc.), and in many cases it is useful to manage all these parameters for
additional battery savings at runtime (and these systems are often
powered by much smaller batteries than the notebooks powered by
desktop-class processors, and so more aggressive reductions in power
consumption may be pursued). Similar interfaces are already in use for
managing such hardware, with benefits that largely depend on the
capabilities of the hardware (in the case of the IBM PowerPC 405LP for
which it was originally developed this was pretty extensively studied).
It is possible, of course, to choose operating points according to cpu
frequency and hardcode the settings of other power parameters to match,
restricting the choices for the other parameters. There are, however,
power consumption and performance (primarily latency of transition
between operating points) advantages to being able to choose memory bus
speeds, core PLL speeds, voltages (yes, some embedded platforms do allow
this to be chosen within limits imposed by other clock speeds), etc.
The embedded hardware designers could probably express this more
eloquently than I can.
A secondary goal is to separate the code to perform platform-specific
hardware modifications from the upper layers which by necessity carry
various assumptions that may not be appropriate for all situations. The
notifiers are one example of this: DPM typically minimizes use of
notifiers and requires notifiers to be able to operate in interrupt and
in idle loop context, due to those additional situations in which DPM
manages power parameters.
--
Todd
prev parent reply other threads:[~2005-08-10 22:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-09 2:54 PowerOP 2/3: Intel Centrino support Todd Poynor
2005-08-09 7:59 ` Ingo Molnar
2005-08-10 10:01 ` Pavel Machek
2005-08-10 12:58 ` Bruno Ducrot
2005-08-10 18:44 ` [linux-pm] " Dave Jones
2005-08-10 23:37 ` Todd Poynor
2005-08-11 15:06 ` Jordan Crouse
2005-08-12 23:13 ` Todd Poynor
2005-08-12 12:38 ` [linux-pm] " Nikolay Pelov
2005-08-10 22:53 ` Todd Poynor [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=42FA8551.3010002@mvista.com \
--to=tpoynor@mvista.com \
--cc=cpufreq@lists.linux.org.uk \
--cc=ducrot@poupinou.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.osdl.org \
--cc=pavel@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox