All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: So, what's the status on the recent patches here?
@ 2006-08-25 20:05 Woodruff, Richard
  2006-08-25 20:08 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-25 20:05 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-pm

> > > For notebooks, devices *are* islands. powerop tries to push
> > > everything-depends-on-everything model that may be good for some
SoC,
> > > but sucks for notebooks. We need some middle ground.
> >
> > USB being enabled and causing your laptop battery to dry up is a
case
> > where laptop device dependency has been shown.  There are likely
many
> > more cases.  I would expect BIOS/chip set developers are all too
aware
> > of these in their sub-domains.
> 
> No, it is because USB enabled prevents cpu from sleeping; it is
> actually well known.

I vaguely recall hearing the why.  It has some DMAs which are going on
and I suppose the processor must service the completions.

Now, if you coordinated with the USB device some how, you could try and
place the USB bus into suspend mode, and only wake up on USB remote wake
up or data to be sent, they you could likely spend a lot more time in a
lower P state.

How are you to know when it is ok to shut off the USB bus?  Is that
something which could be coordinated with the processor and the active
use case.  If I don't need high performance I could go in and out of
suspend to save power.  Knowing high, or low performance helps in this
case :)

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-05 16:03 Scott E. Preece
  2006-09-05 20:42 ` Rafael J. Wysocki
  2006-09-06 10:56 ` Pavel Machek
  0 siblings, 2 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-09-05 16:03 UTC (permalink / raw)
  To: rjw; +Cc: scott.preece, matthew.a.locke, linux-pm, pavel


| From: "Rafael J. Wysocki" <rjw@sisk.pl>
| 
| On Monday, 4 September 2006 01:00, Scott E. Preece wrote:
| > policy decision to suspend is based on factors that are wholly different
| > than the factors that drive frequency/voltage changes. If that were the
| > case, then there would be no point to making the decisions in the same
| > place.  Honestly, I'm not sure of the answer to that...
| 
| I think the decision to suspend is made
| a) by the user,
| b) by a policy manager in case when, for example, the battery is running
| critical (ie. on emergency).
| and the decision to change a frequency/voltage is usually based on some
| efficiency factors.
| 
| Also, the suspend "transitions" are never transparent to the user and the
| changes of frequency/voltage usually are, at least as far as CPUs are
| concerned.
---

Your scope is too narrow. In our domain (mobile phones) the user has no
control at all over power management and decisions to suspend are always
transparent.

In our own implementation, the user-space policy manager initiates
frequency and voltage changes and enabled suspends, but doesn't actually
initiate them. That is, the policy manager says "based on current user
activity, it would be OK to suspend now", and a kernel component then
looks for a good time to do it, based on the system being idle.

We have thought about merging the decisions into a single range of
operating points, but the added plumbing to get idle information back to
the policy manager seemed unappealing.

We don't use cpufreq, so Pavel's arguments about not changing the kernel
interface weren't a concern, for us. We're using a kernel interface that
is all our own (and unappealingly ioctl-based).

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-04 15:43 Scott E. Preece
  0 siblings, 0 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-09-04 15:43 UTC (permalink / raw)
  To: pavel; +Cc: scott.preece, matthew.a.locke, linux-pm

| From: Pavel Machek<pavel@ucw.cz>
| >... 
| > My question is whether there are aspects of suspending, other than
| > latency, that the policy manager would need to consider in deciding
| > whether to suspend or not.
| > 
| > Look at it this way. In one scheme the policy manager code is:
| > 
| >    new_OP = select_transition(current_OP, decision_factors);
| >    set_OP(new_OP);
| 
| No, it would be 
| 
|     new_OP = select_transition(current_OP, decision_factors);
| if (new_OP == SUSPEND) {
| 	setup wakeup events ...
| }
|     set_OP(new_OP);
---

Sorry; in our implementation, the devices are responsible for
configuring the wakeup events, either globally or in their suspend
routines, so it would look like my example code.  However, I would have
expected the setup of wakeup events to happen in the kernel's set_OP
implementation, rather than in the policy manager, anyway.

Again, this model puts the decision to change in user space and the
implementation of the decision in the kernel.

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 23:05 Scott E. Preece
  2006-09-04  9:09 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 23:05 UTC (permalink / raw)
  To: pavel; +Cc: linux-pm


| From: Pavel Machek<pavel@ucw.cz>
| 
| On Sun 2006-09-03 17:31:02, Scott E. Preece wrote:
| > | From: Pavel Machek<pavel@ucw.cz>
| > | Cc: <amit.kucheria@nokia.com>, <linux-pm@lists.osdl.org>
| > | User-Agent: Mutt/1.5.11+cvs20060126
| > | 
| > | On Sun 2006-09-03 16:21:34, Scott E. Preece wrote:
| > | > | From: Pavel Machek<pavel@ucw.cz>
| > | > some reason, in your perception, why definition of operating points
| > | > really needs to be in the kernel?  Definition of the operating points,
| > | > as opposed to changing from one OP to another, shouldn't have any timing
| > | > issues, so why isn't a privileged user-space manager a reasonable
| > | > approach?
| > | 
| > | For one thing, is not powerop needed for boot? You need to boot in
| > | some operating point after all :-).
| > ---
| > 
| > In the implementation we use, the initial OP is set by the boot
| > loader. Our kernel power management driver is a module. The assumption
| > is that booting involves a lot of processing and it makes sense to just
| > use the highest OP anyway.  That makes sense in our environment, but I
| > wouldn't recommend our version as a general solution, anyway.
| 
| That's actually regression; cpufreq saves power even while booting.
---

Well, the kernel boot phase is relatively brief. The module could be
loaded and managing the OP before you start bringing up the rest of user
space. However, I'm not arguing that our approach to that is generally
applicable - I was just giving an existence proof.

scott

| 
| > | > As noted previously, OPs bundle together more than just the
| > | > frequency. Those of us supporting the OP model believe that you can't
| > | > intelligently change CPU frequency in isolation and you can't change
| > | > some of those parameters independently, because only certain
| > | > combinations work.
| > | 
| > | That's okay. User gives you combination he wants, and you select "next
| > | higher" working operating point.
| > ---
| > 
| > Hmm. I need to think about that. I guess the OP abstraction *could* be
| > entirely inside the user-space policy manager, with the kernel exposing
| > individual interfaces for every parameter that the policy manager would
| > need to adjust. However, that means that the whole mess has to be at
| > user level (kernel just implements simple knobs for individual
| > parameters), because the dependency management between the parameters 
| > would only be known at user level, and means a relatively bulky kernel
| > interface, since it would expose more things at the interface. 
| 
| That would work for me.
| 
| But my idea was actually opposite: expose individual knobs to
| userspace, and then select some operating point (inside kernel) that
| satisfies given knobs.
---

But then the kernel needs to know about the operating points, so aren't
you back where we were before?

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 23:00 Scott E. Preece
  2006-09-04  9:12 ` Pavel Machek
  2006-09-05 10:31 ` Rafael J. Wysocki
  0 siblings, 2 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 23:00 UTC (permalink / raw)
  To: rjw; +Cc: scott.preece, matthew.a.locke, linux-pm, pavel


| From: "Rafael J. Wysocki" <rjw@sisk.pl>
| 
| On Sunday, 3 September 2006 23:34, Scott E. Preece wrote:
| > 
| > | From: "Rafael J. Wysocki" <rjw@sisk.pl>
| > | 
| > | On Sunday, 3 September 2006 18:25, David Singleton wrote:
| > | > On 9/2/06, Rafael J. Wysocki <rjw@sisk.pl> wrote:
| > | > >
| > | > > That depends on the definition, but I think of suspend states as the ones
| > | > > that require processes to be frozen before they can be entered.  IMHO it is
| > | > > quite clear that such states cannot be handled in the same way as those
| > | > > that do not require the freezing of processes, so they are not the same.
| > | > 
| > | > You are correct, processes do need to be frozen before a suspend.
| > | > That's the prepare to suspend part of the suspend process, and
| > | > the transtition is the suspending and finish is the un-freezing
| > | > of the processes to resume execution.
| > | > 
| > | > And those same steps are the same steps required to transition the
| > | > system to a new operating point, whether it's suspend or change
| > | > from 1.4GHz to 600MHz.
| > | 
| > | There are only a few states that require the processes to be frozen and I
| > | think that's a good enough reason to handle them separately.
| > 
| > ---
| > 
| > But, surely that distinction can be handled in the implementation behind
| > the interface, rather than exsposed in the interface.
| 
| I don't think you can handle that behind the interface in a satisfactory way.
| For example during a suspend to disk we carry out several transitions of
| devices within the suspend-resume cycle.
| 
| > Does that distinction matter to the policy manager?
| 
| I think so.
| 
| > I would argue that it 
| > increases the latency, which would be important to the policy manager,
| > but that the nature of the latency isn't important to making a policy
| > decision,  and the proposed interface already exposes the latency as
| > something that can be used in making transition decisions.
| 
| From the policy manager perspective it may be just a latency fator,
| but for all of the things _outside_ of the policy manager it's much more
| than that.
| 
| For example transitions like a CPU frequency change are transparent for kernel
| threads, but the suspend "transitions" are not, because the kernel threads need
| to be informed that the system is suspending and they are expected to freeze
| themselves voluntarily.
| 
| Really, I think that the "states" which are entered only after tasks are
| frozen should be considered as special and handled separately.
---

My point is that if the only kernel interface is set-op(), then the code
in the kernel that implements set-op() is the thing that's going to
drive the details of suspending the system, just as it does today. The
abstraction at the kernel interface is about as simple as it can be and
all the policy issues are moved outside the kernel.

My question is whether there are aspects of suspending, other than
latency, that the policy manager would need to consider in deciding
whether to suspend or not.

Look at it this way. In one scheme the policy manager code is:

   new_OP = select_transition(current_OP, decision_factors);
   set_OP(new_OP);

in the other the policy manager code is:

   new_OP = select_transition(current_OP, decision_factors);
   if (new_OP == SUSPEND)
      suspend();
   else
      set_OP(new_OP);

The only practical difference is whether the kernel has one interface or
two; in the one-interface case, there's code in the kernel's
implementation of set_OP() that does the same conditional and calls the
same implementation of suspend. In Pavel's preferred idiom, the calls
to set_OP() are replaced by a sequence of

   set_power_parameter(PARM, VALUE) calls

All dreadfully oversimplified, of course, but I know that the general
approach is possible, because our PM subsystem works in a vaguely
similar manner. The simplification isn't completely ignorable, though,
because the mechanisms driving the transitions involve input from the
kernel (entry to idle, interrupts, clock events, load information, etc.).
The interaction between the kernel and the policy manager may actually
be too complex to support doing all of policy management in user space
(our implementation actually has some kernel bits and some user-spec
bits). Not sure that affects the question of whether suspend is an
operating point, though - that seems (to me) to work the same whether
the policy decision is in the kernel or in user space.

The one question that I see as interesting on that score is whether the
policy decision to suspend is based on factors that are wholly different
than the factors that drive frequency/voltage changes. If that were the
case, then there would be no point to making the decisions in the same
place.  Honestly, I'm not sure of the answer to that...

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 22:40 Scott E. Preece
  2006-09-04  9:06 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 22:40 UTC (permalink / raw)
  To: pavel; +Cc: scott.preece, matthew.a.locke, linux-pm


| From: Pavel Machek<pavel@ucw.cz>
| 
| On Sun 2006-09-03 17:12:22, Scott E. Preece wrote:
| > | From: Pavel Machek<pavel@ucw.cz>
| 
| > | > But, surely that distinction can be handled in the implementation behind
| > | > the interface, rather than exsposed in the interface.  Does that
| > | > distinction matter to the policy manager?  I would argue that it
| > | > increases the latency, which would be important to the policy manager,
| > | > but that the nature of the latency isn't important to making a policy
| > | > decision,  and the proposed interface already exposes the latency as
| > | > something that can be used in making transition decisions.
| > | 
| > | Are we talking about the same thing?
| > | 
| > | If policy manager decides to suspend-to-RAM, it will freeze
| > | itself. Puff, it is not running any more.
| > ---
| > 
| > Well, I assume the policy manager is telling something in the kernel to
| > actually set the operating point. Once it has made that request, it
| > doesn't need to run any longer.
| 
| And how will it tell the kernel to get back to some _operating_
| point? (As opposed to "off-suspended-to-disk"?)
| 
| You see, that interface even causes problems in our (human!)
| comunication. Some of operating points are not really operating!
---

You mean, how will it initiate the transition out of "suspended"? Well,
obviously, it wouldn't be able to do that until the machine
resumed. But, from the perspective of the policy manager, that doesn't
really matter - no time passes (from its perspective), it just starts
running again, receives some kind of wakeup event from the kernel, and
decides what transition should happen.

---
| 
| > | Of course, we could use same interface for both. No, it is not good
| > | idea. We want reasonably clean interface. If it means rewriting
| > | powerop two or three times... we'll need to do it.
| > ---
| > 
| > Not speaking to either of the current code submissions, I would say that
| > having a kernel interface for defining OPs and a kernel interface for
| > setting the OP, was a reasonably clean interface.
| 
| Well, me and Rafael disagree, and you do not really listen to
| arguments. Now you can either fix the interface, or try to submit code
| to lkml despite our NAKs. Go ahead and prepare for some flaming...
---

I think I'm listening to arguments just as much as you guys are! We just
disagree. What are your criteria for "a clean interface"? Why do you
think that n separate set-parameter() interfaces, with no consistency
relationship between them, are cleaner than one define-op() and one
set-op() interface?

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 22:31 Scott E. Preece
  2006-09-03 22:41 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 22:31 UTC (permalink / raw)
  To: pavel; +Cc: linux-pm

| From: Pavel Machek<pavel@ucw.cz>
| Cc: <amit.kucheria@nokia.com>, <linux-pm@lists.osdl.org>
| User-Agent: Mutt/1.5.11+cvs20060126
| 
| On Sun 2006-09-03 16:21:34, Scott E. Preece wrote:
| > | From: Pavel Machek<pavel@ucw.cz>
| > some reason, in your perception, why definition of operating points
| > really needs to be in the kernel?  Definition of the operating points,
| > as opposed to changing from one OP to another, shouldn't have any timing
| > issues, so why isn't a privileged user-space manager a reasonable
| > approach?
| 
| For one thing, is not powerop needed for boot? You need to boot in
| some operating point after all :-).
---

In the implementation we use, the initial OP is set by the boot
loader. Our kernel power management driver is a module. The assumption
is that booting involves a lot of processing and it makes sense to just
use the highest OP anyway.  That makes sense in our environment, but I
wouldn't recommend our version as a general solution, anyway.

---
| 
| Yes, I see having points defined in userspace is useful for debugging,
| but having kernel depend on external daemon for its proper operation
| is not nice.
| 
---

Again, as long as the kernel comes up in some OP it should run
properly. If there's any goal of moving policy out of the kernel, the
kernel is going to have to depend on user-space to support optimal
operation, but the kernel should operate correctly, if non-optimally,
without it.

---
| > | > The only other interface is the actually setting of a (named) operating
| > | > point and that is _required_ to do anything useful.
| > | 
| > | No, they are not.
| > | 
| > | We already have interface for selecting cpu frequency. Lets keep it.
| > 
| > As noted previously, OPs bundle together more than just the
| > frequency. Those of us supporting the OP model believe that you can't
| > intelligently change CPU frequency in isolation and you can't change
| > some of those parameters independently, because only certain
| > combinations work.
| 
| That's okay. User gives you combination he wants, and you select "next
| higher" working operating point.
---

Hmm. I need to think about that. I guess the OP abstraction *could* be
entirely inside the user-space policy manager, with the kernel exposing
individual interfaces for every parameter that the policy manager would
need to adjust. However, that means that the whole mess has to be at
user level (kernel just implements simple knobs for individual
parameters), because the dependency management between the parameters 
would only be known at user level, and means a relatively bulky kernel
interface, since it would expose more things at the interface. 

On the other hand, that complexity has to be somewhere, so maybe that
would be OK. As I said, I need to think about it...

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 22:12 Scott E. Preece
  2006-09-03 22:25 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 22:12 UTC (permalink / raw)
  To: pavel; +Cc: scott.preece, matthew.a.locke, linux-pm



| From: Pavel Machek<pavel@ucw.cz>
| 
| Hi!
| 
| > | > > That depends on the definition, but I think of suspend states as the ones
| > | > > that require processes to be frozen before they can be entered.  IMHO it is
| > | > > quite clear that such states cannot be handled in the same way as those
| > | > > that do not require the freezing of processes, so they are not the same.
| > | > 
| > | > You are correct, processes do need to be frozen before a suspend.
| > | > That's the prepare to suspend part of the suspend process, and
| > | > the transtition is the suspending and finish is the un-freezing
| > | > of the processes to resume execution.
| > | > 
| > | > And those same steps are the same steps required to transition the
| > | > system to a new operating point, whether it's suspend or change
| > | > from 1.4GHz to 600MHz.
| > | 
| > | There are only a few states that require the processes to be frozen and I
| > | think that's a good enough reason to handle them separately.
| > 
| > ---
| > 
| > But, surely that distinction can be handled in the implementation behind
| > the interface, rather than exsposed in the interface.  Does that
| > distinction matter to the policy manager?  I would argue that it
| > increases the latency, which would be important to the policy manager,
| > but that the nature of the latency isn't important to making a policy
| > decision,  and the proposed interface already exposes the latency as
| > something that can be used in making transition decisions.
| 
| Are we talking about the same thing?
| 
| If policy manager decides to suspend-to-RAM, it will freeze
| itself. Puff, it is not running any more.
---

Well, I assume the policy manager is telling something in the kernel to
actually set the operating point. Once it has made that request, it
doesn't need to run any longer.

---
| 
| Yes, it is important that interfaces are different. Would you argue
| for using same interface for slowing down machine and for turning
| machine off?
| 
| And suspend-to-disk *is* turning machine off.
---

An interesting question. While it's turning the machine off, it's not
turning it off in the same sense as shutdown, because otherwise you
wouldn't come back via resume.

In any case, I could imagine OFF being another point in the operating
point continuum, except that it's not something I would expect to be
part of the range available to a policy manager (probably; I guess there
are emergency situations where the policy manager might want to shut the
machine down).

---
| 
| Of course, we could use same interface for both. No, it is not good
| idea. We want reasonably clean interface. If it means rewriting
| powerop two or three times... we'll need to do it.
---

Not speaking to either of the current code submissions, I would say that
having a kernel interface for defining OPs and a kernel interface for
setting the OP, was a reasonably clean interface.

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 21:34 Scott E. Preece
  2006-09-03 21:43 ` Pavel Machek
  2006-09-03 22:10 ` Rafael J. Wysocki
  0 siblings, 2 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 21:34 UTC (permalink / raw)
  To: rjw; +Cc: scott.preece, matthew.a.locke, linux-pm, pavel


| From: "Rafael J. Wysocki" <rjw@sisk.pl>
| 
| On Sunday, 3 September 2006 18:25, David Singleton wrote:
| > On 9/2/06, Rafael J. Wysocki <rjw@sisk.pl> wrote:
| > >
| > > That depends on the definition, but I think of suspend states as the ones
| > > that require processes to be frozen before they can be entered.  IMHO it is
| > > quite clear that such states cannot be handled in the same way as those
| > > that do not require the freezing of processes, so they are not the same.
| > 
| > You are correct, processes do need to be frozen before a suspend.
| > That's the prepare to suspend part of the suspend process, and
| > the transtition is the suspending and finish is the un-freezing
| > of the processes to resume execution.
| > 
| > And those same steps are the same steps required to transition the
| > system to a new operating point, whether it's suspend or change
| > from 1.4GHz to 600MHz.
| 
| There are only a few states that require the processes to be frozen and I
| think that's a good enough reason to handle them separately.

---

But, surely that distinction can be handled in the implementation behind
the interface, rather than exsposed in the interface.  Does that
distinction matter to the policy manager?  I would argue that it
increases the latency, which would be important to the policy manager,
but that the nature of the latency isn't important to making a policy
decision,  and the proposed interface already exposes the latency as
something that can be used in making transition decisions.

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-03 21:21 Scott E. Preece
  2006-09-03 21:54 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-09-03 21:21 UTC (permalink / raw)
  To: pavel; +Cc: linux-pm



| From: Pavel Machek<pavel@ucw.cz>
| 
| Hi!
| 
| On Thu 2006-08-31 16:44:12, Amit Kucheria wrote:
| > On Thu, 2006-08-31 at 00:36 +0200, ext Pavel Machek wrote:
| > > On Wed 2006-08-30 14:00:53, Amit Kucheria wrote:
| > > > But PowerOP would allow SoC-based systems to tune the operating points
| > > > to get the most out of their top-10 use-cases and sleep modes.
| > > 
| > > Question is: can we get similar savings without ugly interface powerop
| > > presents?
| > 
| > If I have understood correctly, your main objection is to defining new
| > operating points from userspace?
| 
| Well, that is big objection, but not my main one. I believe that "new
| operating points from userspace" are non-starter. "So obviously wrong
| that noone would merge that".
---

Why? Are you interpreting "from user space" as "under user control"? A
lot of us have been taught for some time that it's a good thing to move
stuff out of the kernel, unless it really needs to be there. Is there
some reason, in your perception, why definition of operating points
really needs to be in the kernel?  Definition of the operating points,
as opposed to changing from one OP to another, shouldn't have any timing
issues, so why isn't a privileged user-space manager a reasonable
approach?

---
| 
| > The only other interface is the actually setting of a (named) operating
| > point and that is _required_ to do anything useful.
| 
| No, they are not.
| 
| We already have interface for selecting cpu frequency. Lets keep it.
---

As noted previously, OPs bundle together more than just the
frequency. Those of us supporting the OP model believe that you can't
intelligently change CPU frequency in isolation and you can't change
some of those parameters independently, because only certain
combinations work.

---
| ...
| Now, it should be up-to the powerop framework to select best operating
| point given "cpu speed, dsp speed, usb on/off" state. But I argue that
| this should be done in-kernel and hidden from user.
---

Well, I agree with hiding it from the user, but there's no particular
reason that means it needs to be done in the kernel. Again, we like to
have it run from user-space, so we can replace it easily (without
recompiling/restarting the kernel) in development.

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-09-01 14:49 Scott E. Preece
  0 siblings, 0 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-09-01 14:49 UTC (permalink / raw)
  To: amit.kucheria; +Cc: linux-pm, scott.preece

| From Amit.Kucheria@nokia.com Fri Sep  1 03:14:57 2006
| 
| On Thu, 2006-08-31 at 15:22 -0400, ext Preece Scott-PREECE wrote:
| ...
| > So, if a driver had set acceptable_latency to 300ms, the
| > Power-Management policy manager could look at the range of
| > available Ops and pick the lowest-power OP that met the
| > expected load and would also meet the required latency
| > guarantee. [And note that the acceptable latency has to include
| > both the resume time and whatever part of suspend happens with
| > interrupts blocked and can't be aborted.]
| 
| Thinking of it that way, latency is possibly useful. Needs more
| thinking. But what latency values are associated with the OP? The values
| from the spec sheet provided by the silicon vendor do not take into
| account the other operations necessary before you can safely switch to a
| new OP. Some of these operations require indeterminate amount of time.
---

That's something the system designer would have to work out and provide
as part of the information associated with each possible OP transtion
(that is, it would potentially be different for each (currentOP, newOP)
pair).

The system designer would also need to decide whether the latencies had
to be worst-case guarantees or whether the system could tolerate
occasionally missing a latency deadline. This would vary depending on
the system (a heart pacemaker might find deadlines to be more important
than a PDA).

scott

-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-31 15:14 Scott E. Preece
  0 siblings, 0 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-08-31 15:14 UTC (permalink / raw)
  To: pavel; +Cc: linux-pm, matthew.a.locke, scott.preece


| From: Pavel Machek<pavel@suse.cz>
| ...
| > I'm not sure how you distinguish between a "system" sleep state 
| > and a "CPU" sleep state - seems like there's a collection of 
| > things that can be shut down or not; except for true OFF, there's
| > always something on.
| 
| Well, even in "true OFF", RTC keeps ticking. And in "disk" state
| (swsusp), machine is basically "true OFF" but it still retains state.
---

In our sleep state (which I would aligned with "mem", in the previous
list), the application processor part of the system is basically true
off, but retains state in memory. In our systems, of course, there's a
second processor that is independently going in and out of its own
low-power modes while waking up every so many milliseconds to stay
camped on a cellular network.

One "interesting" diffference between "disk" and "mem" (as we would use
them, though we don't have a disk, so we don't have a "disk" state), is
that suspend-to-disk today requires rebooting, while suspend-to-RAM
doesn't.  I don't see why that distinction can't still be below the
interface abstraction presented to a user-space power manager, but it's
the most qualitative difference across the range of proposed operating
points...

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-31  2:41 Woodruff, Richard
  0 siblings, 0 replies; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-31  2:41 UTC (permalink / raw)
  To: Preece Scott-PREECE, Pavel Machek; +Cc: Matthew Locke, linux-pm

> Well, we have some hardware where we can sleep everything but
> memory and some where we can also leave the display active (and
> backlit). In fact, however, today the latency for going to sleep
> is too great to do so between frames, so we just do a wait there.
[Woodruff, Richard] 

In effect OMAP2/3 can auto idle to low power states in between LCD FIFO
refills.  The SDRAM, the DPLL and interconnects can be auto-idled
between LCD FIFO loads.  By carefully setting your LCD FIFO thresholds
you can spin back up the DPLL, memory and interconnect in time to load
up the LCD FIFO, then back to sleep.

Its not just LCD, other devices can do the same.  Say pushing data into
an audio codec's FIFO.

Getting this effect does require device coordination.  If a device
objects you don't hit the big savings.

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-31  0:52 Scott E. Preece
  0 siblings, 0 replies; 136+ messages in thread
From: Scott E. Preece @ 2006-08-31  0:52 UTC (permalink / raw)
  To: pavel; +Cc: linux-pm



| From linux-pm-bounces@lists.osdl.org Wed Aug 30 17:48:27 2006
| 
| On Tue 2006-08-29 21:52:26, David Singleton wrote:
| > >> >>         /sys/power/operating_points/mem
| > >> >>         /sys/power/operating_points/standby
| ....
| > >That does not make mixing them right.
| > 
| > Both OpPoint and PowerOp are going to 'mix' frequency, voltage
| > and sleep states into their operating point concepts.
| > 
| > The point was not to make it look like I was mixing sleep states and
| > CPU frequency states, but to present all the power states
| > supported by the system in one place and with one interface.  It simplifies
| > not only kernel code, but power manager code as well.
| 
| It is also wrong. And no, I do not think your power manager can
| properly use "mem" state.
| 
| You see, "mem" is very different from lowest. To exit lowest, you have
| to "echo highest > state". To exit "mem", you need power
| button. That's very different operation.
---

Not sure exactly what is meant by "mem" operating point. I was assuming
it meant "suspend-to-RAM" (almost everything shut down, memory self
refreshing). In my world, our current policy manager does manage mem
(which we call "sleep" and is the deepest suspend we do) separately from
frequency changes, but that's accident rather than intention.

I agree that there is some difference between them, since we do
frequency changes in response to load, but sleep-state changes based on
idleness. However, there's no real reason why those can't be inputs to
the same policy manager. We actually do make both decisions in the Idle
handler (well, there's more plumbing than that, but they're both driven
by going idle).

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-25 22:11 Woodruff, Richard
  0 siblings, 0 replies; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-25 22:11 UTC (permalink / raw)
  To: Alan Stern; +Cc: linux-pm, Pavel Machek

> Note that you don't need to replace one device with another having the
> same PID/VID.  It could be the very same device but with new media
loaded.
> That would be just as bad.

Yes, I see your point this time.  Thanks.  If I'm hooking up to a modem
inside a phone via an internal transceiver-less link it has a chance,
but not so well with a USB card reader.

Completely generalized solutions in the power domain seem pretty hard to
come by.  You end up with 'if this class of device and not that class of
device' when you try and optimize.  One way of slicing it up is with
discrete sets...kind of like operating point parameters :)

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-25 21:21 Woodruff, Richard
  2006-08-25 21:42 ` Alan Stern
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-25 21:21 UTC (permalink / raw)
  To: Alan Stern; +Cc: linux-pm, Pavel Machek

> > > ?  Wouldn't suspending the entire bus completely stop the
throughput
> > of
> > > any attached device?
> >
> > Not necessarily (right?).  If I shut off VBUS then yes then I need
to
> > re-enumerate for sure.  One might figure out a cleaver way of
shutting
> > it off and turning it back on in between host requests.
> 
> No, you can't do that.  Without VBUS power there's no reliable way to
> detect disconnects or media changes.

That's a good point.  I wonder in this case if it is possible to keep a
list of what was there.  When you re-power if its not there, it should
be like it was disconnected, then act accordingly.  If it is there all
is ok.  It seems unlikely that the same PID/VID device would have
replaced it.  New devices would show up as not being there before.

Coding that all up would likely be a bunch of work assuming it was
possible.


Thanks,
Richard W.
 

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-25 20:57 Woodruff, Richard
  2006-08-25 21:13 ` Alan Stern
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-25 20:57 UTC (permalink / raw)
  To: Alan Stern; +Cc: linux-pm, Pavel Machek

> ?  Wouldn't suspending the entire bus completely stop the throughput
of
> any attached device?

Not necessarily (right?).  If I shut off VBUS then yes then I need to
re-enumerate for sure.  One might figure out a cleaver way of shutting
it off and turning it back on in between host requests.  If I have a USB
drive attached it might well be the protocol layers are smart enough
keep using the device once it is restarted at the low layers.  They just
have to wait longer for the data to arrive.

If I just do USB bus suspend the device at the other end can signal
remote wake up to me.  I tell him suspend and he agrees to drop to a low
power state, then I lower current capacity.  When he has some data he
can let me know and I'll up the VBUS current capacity and then go talk
to him.  If I have data I want from him I directly wake him up.

In both cases the extra overhead causes my throughput to drop, but I
still have an effective connection to the device.

At the PM summit Len made a nice observation that you can map all the
processor ACPI-States right to devices.  You can have T states with them
if you 'throttle' them (slow down their clock).  You can have P states
with voltage/frequency changes.  And you can have C-states (1,2,3) by
shutting down devices in-between accesses, etc.  You can likely have a
single state representation which covers processors and devices.  You
might even implement 'race to idle' conditions at the devices.  Get the
work done then shut off to as low a state as you can and still have
acceptable latency.  This was what sparked the 'on-ness' discussion a
while back on this list.

 
> > The frequency of entering this state should not interfere with my
active
> > use case.
> >
> > -B- After I've put down the USB device, I now can program the
internal
> > SOC bus wrapper for the USB to allow idling of the interconnect.  I
also
> > need to associate the USB remote wake interrupt with a wake up
interrupt
> > to restart my interconnect.  All devices on that interconnect must
be in
> > the same state for the big savings to happen.
> >
> > Certainly for this embedded system, not coordinating the device
states
> > means I can't get the big power savings.
> 
> Part of this programming has to be done in the architecture-specific
> driver for the interconnect.  There already is code being developed to
> suspend USB buses when they aren't in use (although determining _when_
> they aren't in use has not yet been implemented).  However this code
stops
> at the level of the USB controller.  Further development is being
stymied
> by lack of information about how to detect the controller's wake-up
events
> on regular desktop systems; it's possible someone might implement this
> first on an embedded platform.

That seems possible.

> But this doesn't require any over-reaching global coordination.  All
it
> needs is for each driver to know when it's not being used.

Applying an activity time of sorts to each driver 'might' end up in
situations where you get good power savings.  Assuming everything lines
up.  However, given hardware and software bugs and errata, it seems
forcing the situation is much more likely to succeed and make sure you
hit your targets.

Even with a per-driver activity timer how does one set the time out
levels for the whole system?  You need some kind of policy pieces to set
all the knobs.  Letting the self adjust won't likely work for QOS
(quality of service type things) unless they are set very
conservatively.

Thanks,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-25 20:22 Woodruff, Richard
  2006-08-25 20:34 ` Alan Stern
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-25 20:22 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-pm

> > > No, it is because USB enabled prevents cpu from sleeping; it is
> > > actually well known.
> >
> > I vaguely recall hearing the why.  It has some DMAs which are going
on
> > and I suppose the processor must service the completions.
> > Now, if you coordinated with the USB device some how, you could try
> > > and
> 
> If I coordinated with USB device somehow, I'd know when it is possible
> to shutoff usb bus. This can be done locally at usb driver, no need
> for big framework. Just someone needs to write that code.

There are two sides to this in the case for the embedded processor I'm
using.

-A- you have to put the USB bus into suspend mode.
	- This will lower the throughput of the device on the other end.
The frequency of entering this state should not interfere with my active
use case.

-B- After I've put down the USB device, I now can program the internal
SOC bus wrapper for the USB to allow idling of the interconnect.  I also
need to associate the USB remote wake interrupt with a wake up interrupt
to restart my interconnect.  All devices on that interconnect must be in
the same state for the big savings to happen.

Certainly for this embedded system, not coordinating the device states
means I can't get the big power savings.

Now, programming up millions of combinations is not feasible.  However
you can profile your usage and target common use cases.  Playing MP3 and
reading a document for instance.

Thanks,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-24 14:52 Woodruff, Richard
  2006-08-25 19:58 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-24 14:52 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-pm

> > > ...which is very bad interface for applications. See my other
> > > mail. Applications should not have to play with fast/medium/slow,
> > > explicitely. Instead, on opening /dev/dsp, you should power up the
> > > sound system (and maybe adjust cpu frequency if
> > > neccessary). Application should not have to do echo fast >
somewhere
> > > before opening /dev/dsp
> >
> > How does /dev/dsp know at what level it can run at?  On the SOC I
> > control the speed of the DSP.  I can adjust its MIPs rate.
> 
> (I meant /dev/dsp -- OSS audio device, not Digital Signal Processor).

It can be all the same.

The device behind /dev/dsp doing the work likely is the main control
processor or it is a DSP (and some side mixer chip or not).  The DSP in
the laptop case might be hidden inside some PCI composite device and
present its own interface.  Thus you may treat it as some discrete
device with one register range.  On the SOC it is all unrolled and you
must control all the pieces individually (and in concert with each
other).  The DSP in both cases may have its own OS also running.  This
is generally what you download as firmware.

When I want to frequency and/or voltage scale I must take into account
what the DSP is doing and what the applications processor is doing.
This is not so different from today's SMP/Core-Duo type systems where
both CPUs are in the same voltage plane.  You can't change one with out
affecting the other.

The internal busses in SOCs wrap all these integrated peripherals in a
common way and add power hooks.  This allows them to achieve massive
power optimizations which are not likely possible in the PC world.

> > A missing pieces is meaningful coordination between devices.  Each
> > device is not an island.  Not taking care of all devices on the
internal
> > interconnects may mean you don't get the big power savings.  For the
DSP
> 
> For notebooks, devices *are* islands. powerop tries to push
> everything-depends-on-everything model that may be good for some SoC,
> but sucks for notebooks. We need some middle ground.

USB being enabled and causing your laptop battery to dry up is a case
where laptop device dependency has been shown.  There are likely many
more cases.  I would expect BIOS/chip set developers are all too aware
of these in their sub-domains.

On a PC it might be hardware bugs and software bugs which are cause some
of the problems.  This is the case for embedded also.  An embedded SOC
does have another dimension in that they are designed to have global
system power states which include all devices (a processor is just
another device and their may be many).  Their high level of integration
enables this.  Linux's device model doesn't match up well with this.
There are X standard ways in which it is done by various vendors.
PowerOP at the low level provides a mechanism to abstract these
differences.

Thanks,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-24 12:16 Woodruff, Richard
  2006-08-24 12:29 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-24 12:16 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-pm

> > To some extent having lots of specific policies in the embedded
space is
> > inevitable.  The hardware is very tightly coupled.  You may have
> 
> Maybe. But you certainly do not have to export that uglyness to
> userspace. 

Some aspects are easier to manage.  If data base like operations and
such are needed it's a more friendly place.

Sysfs exporting every gory detail about PCI or USB doesn't seem so far
from this kind of thing.

> > I have some notion that a policy manager can create a state with
simple
> > & general names like fast, medium, slow (whatever) which is the
> > interface in which applications might speak.  A complex policy
> > manager
> 
> ...which is very bad interface for applications. See my other
> mail. Applications should not have to play with fast/medium/slow,
> explicitely. Instead, on opening /dev/dsp, you should power up the
> sound system (and maybe adjust cpu frequency if
> neccessary). Application should not have to do echo fast > somewhere
> before opening /dev/dsp

How does /dev/dsp know at what level it can run at?  On the SOC I
control the speed of the DSP.  I can adjust its MIPs rate.  

We do internally have some run time algorithms on the DSP which allow it
to feed statistics back about how well it is doing... like did I drop
any frames, and how close was I to my deadline in decoding a sample.  So
there is some low level things which can be done.  The DSP is currently
has management code in the kernel (bridge driver) and it has a user
space component which can load algorithms and such through the bridge to
do things.

A missing pieces is meaningful coordination between devices.  Each
device is not an island.  Not taking care of all devices on the internal
interconnects may mean you don't get the big power savings.  For the DSP
and the Control processor to work you need each device enabled to a
sufficient performance level.  Setting them to all high means you don't
get the savings.

Doing this kind of coordination which is very specific to your use case
is difficult to achieve in a generalized fashion.  Splitting some of
this work between user and kernel space can help.

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-23 19:20 Woodruff, Richard
  2006-08-24  8:03 ` Pavel Machek
  0 siblings, 1 reply; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-23 19:20 UTC (permalink / raw)
  To: Pavel Machek, Vitaly Wool; +Cc: linux-pm

> > I guess it just defines an appropriate policy. You can call it
> > 'usb_mp3' if you wish ;)
> > I don't think it's too embedded-specific.
> 
> Well, it leads to exponential number of policies -- not nice. Having
> usb_mp3_fileserver_webserver is not nice.

To some extent having lots of specific policies in the embedded space is
inevitable.  The hardware is very tightly coupled.  You may have almost
all the functionality of a PC some 5 years back on a single chip.  In
that kind of environment not taking into account the chip as a whole
means you do power at a 10x or say 100x of optimal.  You don't get the
big interconnect savings unless you link the all the individual device
states with the processor states.  A 400mA@1.3v might sound good to a PC
centric person, but when the design target is 4mA@1.3v it is not good.

I have some notion that a policy manager can create a state with simple
& general names like fast, medium, slow (whatever) which is the
interface in which applications might speak.  A complex policy manager
will associate this name with device and cpu states in great detail.  A
more general purpose one only need map it to some governor and its run
time parameters.

Regards,
Richard W.

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-20 13:36 Woodruff, Richard
  0 siblings, 0 replies; 136+ messages in thread
From: Woodruff, Richard @ 2006-08-20 13:36 UTC (permalink / raw)
  To: David Singleton; +Cc: linux-pm

> 
>                 Oppoint could replace large pieces of the cpufreq code
>         in the kernel, most notably the policy and governor code,
which I
>         believe belongs in user space in the power manager daemon.

I've not actually looked a CPUFreq implementation to know how all this
maps...

In general policy is better in user space and depending on your system
it might all live there.

However, when response time counts, it can be necessary to have a level
of algorithm be executed in kernel space.  Some might associate this
level with policy.

Cpufreq has both user and kernel space governess.  For sure the choice
of what govner to use, in which context it executes, and tracking of its
performance likely would be easiest in user space.

Regards,
Richard W.  

^ permalink raw reply	[flat|nested] 136+ messages in thread
* Re: So, what's the status on the recent patches here?
@ 2006-08-16  1:27 Scott E. Preece
  2006-08-16 15:25 ` Mark Gross
  0 siblings, 1 reply; 136+ messages in thread
From: Scott E. Preece @ 2006-08-16  1:27 UTC (permalink / raw)
  To: davej; +Cc: linux-pm



| From: Dave Jones<davej@redhat.com>
| 
| On Tue, Aug 15, 2006 at 01:35:15PM +0300, Amit Kucheria wrote:
| 
|  > d. In the end, all this is leading to an interface for a user-space
|  > policy manager that will control _system_ power state based on
|  > constraints imposed by HW peripherals or on policies implemented by
|  > device manufacturer/distro maintainer.
| 
| How does that interface look from a userspace point of view ?
| Hopefully not anything like the tuple described above.
| Why would userspace ever care about "interconnect freq" ?
| 
| Userspace cares about "save power" or "go fast".
| Historically, I wish we had never exposed frequencies, but instead
| a performance percentage, so that the various userspace tools
| didn't have to care about things like 'what frequencies are available'.
| Adding the same mistake for voltages doesn't strike me as a fantastic idea.
---

For us, "userspace" means a power policy manager that potentially has a
lot of awareness about the power needs of specific applications and the
overall use cases driving the device. There is no interface available or
visible to a "user".  The policy manager does want to know about
specific frequencies and voltages and their interaction, because they
determine the circumstances under which it makes sense to make
particular transitions.

As I think I mentioned at the PM Summit in April, it's important to
recognize that the power and performance implications of operating
points are not simply based on frequency. Sometimes you want so shift
"sideways", because changing one parameter may be preferable to changing
another. 

Note that we also want to be able to run the same code on a range of
devices that may have significantly different hardware performance, so
an abstract set of names (fastest to slowest, for instance) is also a
problem.  

scott
-- 
scott preece
motorola mobile devices, il67, 1800 s. oak st., champaign, il  61820  
e-mail:	preece@motorola.com	fax:	+1-217-384-8550
phone:	+1-217-384-8589	cell: +1-217-433-6114	pager: 2174336114@vtext.com

^ permalink raw reply	[flat|nested] 136+ messages in thread
* So, what's the status on the recent patches here?
@ 2006-08-14 20:07 Greg KH
  2006-08-14 22:24 ` Matthew Locke
  0 siblings, 1 reply; 136+ messages in thread
From: Greg KH @ 2006-08-14 20:07 UTC (permalink / raw)
  To: linux-pm

I'm seeing a lot of threads without very much resolution on the
differing patches that are flying around here in regards to the rework
of the power management stuff (not suspend stuff...)

So, should I just grab a random patchset from here and add it to my
trees and get it into -mm for testing, or does someone want to possibly
guide me to the set that everyone seems to agree apon?

Or, is there two (or more) competing patch sets here that need to get
resolved?

(If you can't tell I'm getting a bit annoyed at having to tell people
all the time that yes, power management on Linux is bad, and yes, people
are working on it, but no, I have no idea when it will ever see the
light of day...)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 136+ messages in thread

end of thread, other threads:[~2006-09-11 18:58 UTC | newest]

Thread overview: 136+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-25 20:05 So, what's the status on the recent patches here? Woodruff, Richard
2006-08-25 20:08 ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2006-09-05 16:03 Scott E. Preece
2006-09-05 20:42 ` Rafael J. Wysocki
2006-09-06 10:56 ` Pavel Machek
2006-09-04 15:43 Scott E. Preece
2006-09-03 23:05 Scott E. Preece
2006-09-04  9:09 ` Pavel Machek
2006-09-03 23:00 Scott E. Preece
2006-09-04  9:12 ` Pavel Machek
2006-09-05 10:31 ` Rafael J. Wysocki
2006-09-03 22:40 Scott E. Preece
2006-09-04  9:06 ` Pavel Machek
2006-09-05 16:45   ` Mark Gross
2006-09-06 10:59     ` Pavel Machek
2006-09-03 22:31 Scott E. Preece
2006-09-03 22:41 ` Pavel Machek
2006-09-03 22:12 Scott E. Preece
2006-09-03 22:25 ` Pavel Machek
2006-09-03 21:34 Scott E. Preece
2006-09-03 21:43 ` Pavel Machek
2006-09-03 22:10 ` Rafael J. Wysocki
2006-09-03 21:21 Scott E. Preece
2006-09-03 21:54 ` Pavel Machek
2006-09-01 14:49 Scott E. Preece
2006-08-31 15:14 Scott E. Preece
2006-08-31  2:41 Woodruff, Richard
2006-08-31  0:52 Scott E. Preece
2006-08-25 22:11 Woodruff, Richard
2006-08-25 21:21 Woodruff, Richard
2006-08-25 21:42 ` Alan Stern
2006-08-25 20:57 Woodruff, Richard
2006-08-25 21:13 ` Alan Stern
2006-08-25 20:22 Woodruff, Richard
2006-08-25 20:34 ` Alan Stern
2006-08-25 21:27   ` Pavel Machek
2006-08-25 21:46     ` Alan Stern
2006-08-25 22:03       ` Pavel Machek
2006-08-26  2:21         ` Alan Stern
2006-08-24 14:52 Woodruff, Richard
2006-08-25 19:58 ` Pavel Machek
2006-08-24 12:16 Woodruff, Richard
2006-08-24 12:29 ` Pavel Machek
2006-08-23 19:20 Woodruff, Richard
2006-08-24  8:03 ` Pavel Machek
2006-08-20 13:36 Woodruff, Richard
2006-08-16  1:27 Scott E. Preece
2006-08-16 15:25 ` Mark Gross
2006-08-14 20:07 Greg KH
2006-08-14 22:24 ` Matthew Locke
2006-08-14 22:46   ` Dave Jones
2006-08-14 23:24     ` Matthew Locke
2006-08-14 23:48       ` Dave Jones
2006-08-15  1:00         ` Greg KH
2006-08-15  3:03           ` Dave Jones
2006-08-15 10:35           ` Amit Kucheria
2006-08-15 19:04             ` Dave Jones
2006-08-16 12:58               ` Igor Stoppa
2006-08-17 21:39                 ` Pavel Machek
2006-08-18 10:02                   ` Igor Stoppa
2006-08-18 15:29                     ` Alexey Starikovskiy
2006-08-18 17:54                       ` Igor Stoppa
2006-08-18 21:05                         ` Alexey Starikovskiy
2006-08-20 13:19                           ` Igor Stoppa
2006-08-17  5:20               ` Matthew Locke
2006-08-17  7:20                 ` Paul Mundt
2006-08-17  9:18               ` Amit Kucheria
2006-08-17 21:40                 ` Pavel Machek
2006-08-18  5:42                   ` Vitaly Wool
2006-08-23 12:28                     ` Pavel Machek
2006-08-23 15:26                       ` Igor Stoppa
2006-08-24 12:58                       ` Vitaly Wool
2006-08-25 19:55                         ` Pavel Machek
2006-08-25 23:26                           ` Vitaly Wool
2006-08-26 10:18                             ` Pavel Machek
2006-08-26 13:30                               ` Vitaly Wool
2006-08-26 13:46                                 ` Pavel Machek
2006-08-28 16:40                                   ` Mark Gross
2006-08-28 17:39                                     ` Pavel Machek
2006-08-29  7:51                                       ` Matthew Locke
2006-08-30 22:13                                       ` Mark Gross
2006-08-30 22:27                                         ` Pavel Machek
2006-08-18 11:48                   ` Amit Kucheria
2006-08-24  7:59                     ` Pavel Machek
2006-08-30 11:00                       ` Amit Kucheria
2006-08-30 22:36                         ` Pavel Machek
2006-08-31 13:44                           ` Amit Kucheria
2006-09-02 11:17                             ` Pavel Machek
2006-08-17 21:24             ` Pavel Machek
2006-08-19  6:10           ` David Singleton
2006-08-22  2:13             ` Greg KH
2006-08-22  5:20               ` David Singleton
2006-08-23 19:05             ` Mark Gross
2006-08-24 12:39             ` Pavel Machek
2006-08-19  6:19           ` David Singleton
     [not found]             ` <20060819184843.GB15644@redhat.com>
2006-08-20  3:20               ` David Singleton
2006-08-20  3:30                 ` Dave Jones
2006-08-23 18:50                   ` Mark Gross
2006-08-27  4:37                   ` David Singleton
2006-08-27 15:41                     ` Pavel Machek
2006-08-29 15:55                       ` David Singleton
2006-08-29 16:34                         ` Pavel Machek
2006-08-29 17:49                           ` Preece Scott-PREECE
2006-08-30  6:20                             ` Matthew Locke
2006-08-30 13:26                               ` Preece Scott-PREECE
2006-08-30 22:50                                 ` Pavel Machek
2006-08-31  0:22                                   ` Preece Scott-PREECE
2006-08-31 12:04                                     ` Pavel Machek
2006-09-02 18:05                               ` David Singleton
2006-09-02 19:30                                 ` Rafael J. Wysocki
2006-09-03 16:25                                   ` David Singleton
2006-09-03 20:57                                     ` Rafael J. Wysocki
2006-09-03 21:33                                     ` Pavel Machek
2006-09-09  0:39                                       ` David Singleton
2006-09-09  0:48                                         ` David Singleton
2006-09-09 16:13                                           ` Pavel Machek
2006-09-09 12:17                                         ` Pavel Machek
2006-09-11 15:11                                           ` David Singleton
2006-09-11 17:14                                             ` Pavel Machek
2006-09-11 18:58                                             ` Matthew Locke
2006-08-30  4:52                           ` David Singleton
2006-08-30  5:52                             ` Matthew Locke
2006-08-30 13:39                               ` Preece Scott-PREECE
2006-08-30 22:43                             ` Pavel Machek
2006-08-27 19:48                     ` Greg KH
2006-08-28  0:07                       ` David Singleton
2006-08-27 20:54                     ` Eugeny S. Mints
2006-08-28 22:18                       ` Pavel Machek
2006-08-29 21:46                         ` Eugeny S. Mints
2006-08-29  1:29                       ` David Singleton
2006-08-29 22:39                         ` Eugeny S. Mints
2006-08-31 13:27                         ` Amit Kucheria
2006-08-31 19:22                           ` Preece Scott-PREECE
2006-09-01  8:11                             ` Amit Kucheria
2006-08-14 23:29   ` Dominik Brodowski
2006-08-14 23:48     ` Matthew Locke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.