From: "David Singleton" <daviado@gmail.com>
To: "Greg KH" <greg@kroah.com>
Cc: linux-pm@lists.osdl.org, "kernel list" <linux-kernel@vger.kernel.org>
Subject: Re: [linux-pm] cpufreq terminally broken [was Re: community PM requirements/issues and PowerOP]
Date: Wed, 13 Sep 2006 16:50:43 -0700 [thread overview]
Message-ID: <b324b5ad0609131650q1b7a78cfsa90e3fbe8d7b4093@mail.gmail.com> (raw)
In-Reply-To: <20060912033700.GD27397@kroah.com>
Greg,
here's a few paragraphs about the power management code I'm working on.
The OpPoint patch set is a fully functionaly power management solution,
from kernel operating state support to userland power manager.
OpPoint constructs operating points for all supported frequency, voltage
and suspend states for PC and SoC solutions running Linux. OpPoint
does not break or replace cpufreq. It leverages cpufreq code to provide
the same driver scaling functions when cpu frequency changes affect drivers.
(The ARM pxa27x patch uses the cpufreq scaling routines to scale the LCD
when frequencies are changed and works well when playing mpeg movies on
the LCD during frequency scaling operations).
The Operating Points in OpPoint are simply created at compile time, in
the same manner cpufreq tables are, and registered in
/sys/power/operating_states directory when the cpu is identified at boot time.
The states are ordered by name on their power consumption level from lowest
to highest so the power manager can operate correctly regardless of what
frequencies or voltages are associated with the lowest or highest
operating points.
There is no kernel interface to parse and create all the parameters
needed to create an operating point. Platform specific information
is supplied to the oppoint structure through an ops vector of three
routines and a void * pointer to supply the platform specific data,
in the same manner drivers have a void * for their private data.
The ops vectors provide operating point specific functions to prepare
to change to a new operating point, transition to the target operating
point, and a finish transition routine to either notify driver that
the clocks have scaled and operation of bus and DMA traffic may continue.
OpPoint draws the line about what's needed in the kernel a bit differently
than Matt's PowerOp code. OpPoint only puts operating point support in
the kernel. Polices for operting states and classes of operating states
are left to the power manager, in userland. This simplifies the
kernel code, no string parsers for operating point parameter construction,
and makes it easier to customize a solution by customizing the power
manager.
A power manager is supplied with the OpPoint patch set as well. I borrowed
the cpuspeed deamon and made a simple patch that uses the new OpPoint
sysfs interface. The daemon can be compiled as the original cpuspeed or
oppointd deamon depending on the users choice. The daemon provides the
same functions as the cpuspeed daemon.
OpPoint is a fully functional solution ready for testing and evaluation
in Andrew's or your tree.
The kernel patches are available at:
http://source.mvista.com/~dsingleton/2.6.1-rc6
the power manager source code and patch is available at:
http://source.mvista.com/~dsingleton/oppointd
David
next prev parent reply other threads:[~2006-09-13 23:50 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <450516E8.9010403@gmail.com>
[not found] ` <20060911082025.GD1898@elf.ucw.cz>
[not found] ` <b0623b9bb79afacc77cddc6e39c96b62@nomadgs.com>
[not found] ` <20060911195546.GB11901@elf.ucw.cz>
[not found] ` <4505CCDA.8020501@gmail.com>
[not found] ` <20060911210026.GG11901@elf.ucw.cz>
[not found] ` <4505DDA6.8080603@gmail.com>
2006-09-11 22:56 ` Pavel Machek
2006-09-12 0:17 ` Mark Gross
2006-09-12 3:37 ` Greg KH
2006-09-13 23:50 ` David Singleton [this message]
2006-09-14 5:30 ` [linux-pm] " Vitaly Wool
2006-09-14 5:55 ` OpPoint summary Greg KH
2006-09-14 7:35 ` [linux-pm] " Vitaly Wool
2006-09-14 16:55 ` David Singleton
2006-09-14 17:03 ` David Singleton
2006-09-14 17:07 ` David Singleton
2006-09-14 17:25 ` Auke Kok
2006-09-14 18:15 ` [linux-pm] " Vitaly Wool
2006-09-14 18:17 ` David Singleton
2006-09-17 17:48 ` Pavel Machek
2006-09-18 14:33 ` [linux-pm] " Richard A. Griffiths
2006-09-18 16:13 ` Matthew Locke
2006-09-14 17:11 ` David Singleton
2006-09-17 5:07 ` David Singleton
2006-09-17 12:56 ` Pavel Machek
2006-09-17 12:58 ` Pavel Machek
2006-09-17 22:43 ` [linux-pm] " Matthew Locke
2006-09-12 8:33 ` cpufreq terminally broken [was Re: community PM requirements/issues and PowerOP] Pavel Machek
2006-09-12 9:10 ` [linux-pm] " Vitaly Wool
2006-09-12 9:16 ` Pavel Machek
2006-09-12 9:23 ` Vitaly Wool
2006-09-14 15:04 ` Mark Gross
2006-09-14 14:58 ` Mark Gross
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=b324b5ad0609131650q1b7a78cfsa90e3fbe8d7b4093@mail.gmail.com \
--to=daviado@gmail.com \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.osdl.org \
/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
all inboxes | Powered by JetHome®