From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Alan Stern <stern@rowland.harvard.edu>,
linux-pm@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, arve@android.com,
mjg59@srcf.ucam.org, pavel@ucw.cz, florian@mickler.org,
swetland@google.com, peterz@infradead.org, tglx@linutronix.de,
alan@lxorguk.ukuu.org.uk
Subject: Re: Attempted summary of suspend-blockers LKML thread
Date: Sun, 1 Aug 2010 12:56:17 -0700 [thread overview]
Message-ID: <20100801195617.GN2470@linux.vnet.ibm.com> (raw)
In-Reply-To: <201008011741.31086.rjw@sisk.pl>
On Sun, Aug 01, 2010 at 05:41:30PM +0200, Rafael J. Wysocki wrote:
> On Saturday, July 31, 2010, Alan Stern wrote:
> > On Sat, 31 Jul 2010, Paul E. McKenney wrote:
> >
> > > Rushing in where angels fear to tread...
> > >
> > > I had been quite happily ignoring the suspend-blockers controversy.
> > > However, now that I have signed up for the Linaro project that involves
> > > embedded battery-powered devices, I find that ignorance is no longer
> > > bliss. I have therefore reviewed much of the suspend-blocker/wakelock
> > > material, but have not yet seen a clear exposition of the requirements
> > > that suspend blockers are supposed to meet. This email is a attempt
> > > to present the requirements, based on my interpretation of the LKML
> > > discussions.
> > >
> > > Please note that I am not proposing a solution that meets these
> > > requirements, nor am I attempting to judge the various proposed solutions.
> > > In fact, I am not even trying to judge whether the requirements are
> > > optimal, or even whether or not they make sense at all. My only goal
> > > at the moment is to improve my understanding of what the Android folks'
> > > requirements are. That said, I do include example mechanisms as needed to
> > > clarify the meaning of the requirements. This should not be interpreted
> > > as a preference for any given example mechanism.
> > >
> > > But first I am going to look at nomenclature, as it appears to me that
> > > at least some of the flamage was due to conflicting definitions. Following
> > > that, the requirements, nice-to-haves, apparent non-requirements,
> > > an example power-optimized applications, and finally a brief look
> > > at other applications.
> > >
> > > Donning the asbestos suit, the one with the tungsten pinstripes...
> > >
> > > Thanx, Paul
> >
> > At the risk of sticking my neck out, I think a few of your statements
> > don't fully capture the important ideas.
> >
> > > ------------------------------------------------------------------------
> > >
> > > DEFINITIONS
> > >
> > > o "Ill-behaved application" AKA "untrusted application" AKA
> > > "crappy application". The Android guys seem to be thinking in
> > > terms of applications that are well-designed and well-implemented
> > > in general, but which do not take power consumption or battery
> > > life into account. Examples include applications designed for
> > > AC-powered PCs. Many other people seemed to instead be thinking
> > > in terms of an ill-conceived or useless application, perhaps
> > > exemplified by "bouncing cows".
> > >
> > > Assuming I have correctly guessed what the Android guys were
> > > thinking of, perhaps "power-naive applications" would be a
> > > better description, which I will use until someone convinces
> > > me otherwise.
>
> I'd slightly prefer these to be called "power-oblvious applications", to
> reflect the fact that their authors might not take power management into
> consideration in any form.
I am fine with "power-oblivious applications".
> > > o "Power-aware application" are applications that are permitted
> > > to acquire suspend blockers on Android. Verion 8 of the
> > > suspend-blocker patch seems to use group permissions to determine
> > > which applications are classified as power aware.
> > >
> > > More generally, power-aware applications seem to be those that
> > > have permission to exert some control over the system's
> > > power state.
> >
> > Notice that these definitions allow a program to be both power-naive
> > and power-aware. In addition, "power-awareness" isn't an inherent
> > property of the application itself, since users are allowed to decide
> > which programs may exert control over the system's power state. The
> > same application could be power-aware on one system and non-power-aware
> > on another.
>
> Also, there is another type of "power-awareness", related to the ability to
> react to power management events signaled, for example, by pm-utils using
> dbus protocol (NetworkManager is one such application). However, the
> applications having that ability don't really participate in making a decision
> to change the state of the system, while the applications using wakelocks do.
Perhaps this group is best named "power-aware applications"?
> In the wakelocks (or suspend blockers, whatever you prefer to call them) world
> no single entity is powerful enough to make the system go into a sleep state,
> but some applications and device drivers collectively can make that happen.
> The applications using wakelocks not only are aware of system power
> management, but also are components of a "collective power manager", so
> perhaps it's better to call them "PM-driving applications" or something like
> this.
Right, any PM-driving application can -prevent- the system from entering
a deep sleep state, but no single application can force this -- aside
from using the traditional non-opportunistic suspend facility, that is.
> > > o Oddly enough, "power-optimized applications" were not discussed.
> > > See "POWER-OPTIMIZED APPLICATIONS" below for a brief introduction.
> > > The short version is that power-optimized applications are those
> > > power-aware applications that have been aggressively tuned to
> > > reduce power consumption.
> >
> > This would be essentially the same as power-aware && !power_naive,
> > right?
>
> Not really, IMO. !power_naive means "doesn't use wakelocks" in this context,
> while "power-optimized" would mean something like "not only uses wakelocks,
> but also tries to reduce energy consumption by as much as possible".
I agree with this. A power-optimized application is something that
goes to lengths to minimize its power consumption, regardless of whether
something like wakelocks is in the picture.
> > > REQUIREMENTS
> > >
> > > o Reduce the system's power consumption in order to (1) extend
> > > battery life and (2) preserve state until AC power can be obtained.
> >
> > External power, not necessarily AC power (a very minor point).
> >
> > > o It is necessary to be able to use power-naive applications.
> > > Many of these applications were designed for use in PC platforms
> > > where power consumption has historically not been of great
> > > concern, due to either (1) the availability of AC power or (2)
> > > relatively undemanding laptop battery-lifetime expectations. The
> > > system must be capable of running these power-naive applications
> > > without requiring that these applications be modified, and must
> > > be capable of reasonable power efficiency even when power-naive
> > > applications are available.
> > >
> > > o If the display is powered off, there is no need to run any
> > > application whose only effect is to update the display.
> >
> > On Android this goes somewhat farther. IIUC, they want hardly anything
> > to run while the display is powered off. (But my understanding could
> > be wrong.)
>
> Not really. Quite a lot of things happen on these systems while the display
> is off (let alone the periodic battery monitoring on Nexus One :-)). They
> can send things over the network and do similar stuff in that state.
>
> I think the opposite is true, ie. the display is aggressively turned off
> whenever it appears not to be used, because it draws a lot of power.
Fair enough. It appears to me that Android won't suspend if the display
is on, but I could easily be confused here.
> > For computers in general, of course, this statement is correct. The
> > same is true for any output-only device. For example, if the audio
> > speakers are powered off, there is no need to run any application whose
> > only effect is to play sounds through the speakers.
>
> Agreed.
>
> > > Although one could simply block such an application when it next
> > > tries to access the display, it appears that it is highly
> > > desirable that the application also be prevented from
> > > consuming power computing anything that will not be displayed.
> > > Furthermore, whatever mechanism is used must operate on
> > > power-naive applications that do not use blocking system calls.
> > >
> > > o In order to avoid overrunning hardware and/or kernel buffers,
> > > input events must be delivered to the corresponding application
> > > in a timely fashion. The application might or might not be
> > > required to actually process the events in a timely fashion,
> > > depending on the specific application.
> >
> > This goes well beyond overrunning buffers! Events must be delivered in
> > a timely fashion so that the system isn't perceived to be inoperative.
>
> That's correct, although it doesn't seem to apply to any kind of input
> events. For example, on Nexus One the touchscreen doesn't generate wakeup
> events (ie. events that wake the system up from a sleep states), so I'm not
> sure to what extent they are supposed to block (automatic) suspends.
Good point, I forgot that not all events do wakeups. I updated accordingly.
> > > In particular, if user input that would prevent the system
> > > from entering a low-power state is received while the system is
> > > transitioning into a low-power state, the system must transition
> > > back out of the low-power state so that it can hand the user
> > > input off to the corresponding application.
>
> Side note. I'd like to avoid confusing device states with system-as-a-whole
> states, so I always prefer to refer to the system-as-a-whole-low-power states
> as "system sleep states", while term "low-power state" is reserved for
> individual devices.
>
> Also in some cases (ACPI mostly) a "system sleep state" is more than a
> "system low-power state", because you can put the system into a low-power
> state by putting a number of devices into low-power states, which is not
> sufficient to put the system into a sleep state (the platform has to be
> programmed in a special way to carry out that operation). Now, wakelocks
> are about "system sleep states", not about "system low-power states" in
> general.
Good point, noted.
> > > o If a power-aware application receives user input, then that
> > > application must be given the opportunity to process that
> > > input.
> >
> > A better way to put this is: The API must provide a means for
> > power-aware applications receiving user input to keep themselves
> > running until they have been able to process the input.
> >
> > This is probably also true for power-aware applications having other
> > needs (e.g., non-input-driven computation). In general, power-aware
> > applications must have a mechanism to prevent themselves from being
> > stopped for power-related reasons.
>
> Agreed.
>
> > > o A power-aware application must be able to efficiently communicate
> > > its needs to the system, so that such communication can be
> > > performed on hot code paths. Communication via open() and
> > > close() is considered too slow, but communication via ioctl()
> > > is acceptable.
> > >
> > > o Power-naive applications must be prohibited from controlling
> > > the system power state. One acceptable approach is through
> > > use of group permissions on a special power-control device.
> >
> > You mean non-power-aware applications, not power-naive applications.
> > But then the statement is redundant; it follows directly from the
> > definition of "power-aware".
>
> Agreed.
OK, but I still believe that an enforcement mechanism is required.
> > > o Statistics of the power-control actions taken by power-aware
> > > applications must be provided, and must be keyed off of program
> > > name.
> > >
> > > o Power-aware applications can make use of power-naive infrastructure.
> > > This means that a power-aware application must have some way,
> > > whether explicit or implicit, to ensure that any power-naive
> > > infrastructure is permitted to run when a power-aware application
> > > needs it to run.
> > >
> > > o When a power-aware application is preventing the system from
> > > shutting down, and is also waiting on a power-naive application,
> > > the power-aware application must set a timeout to handle
> > > the possibility that the power-naive application might halt
> > > or otherwise fail. (Such timeouts are also used to limit the
> > > number of kernel modifications required.)
> >
> > No, this is not a requirement. A power-optimized application would do
> > this, of course, by definition. But a power-aware application doesn't
> > have to.
>
> Agreed.
Again, this requirement was explicitly called out by the Android folks.
> > > o If no power-aware or power-optimized application are indicating
> > > a need for the system to remain operating, the system is permitted
> > > (even encouraged!) to suspend all execution, even if power-naive
> > > applications are runnable. (This requirement did appear to be
> > > somewhat controversial.)
> >
> > The controversy was not over the basic point but rather over the
> > detailed meaning of "runnable". A technical matter, related to the
> > implementation of the scheduler.
>
> Well, I _think_ it was about the basic point too, since "all execution" means
> periodic timers in particular and involves shutting down clock sources (except
> for the RTC).
>
> Arguably, suspending "all execution" is not necessary to achieve a satisfactory
> level of energy saving, at least on a number of systems.
Indeed, some embedded systems are capable of doing quite a lot even when
almost everything, including the CPU and cache, is powered down.
Thanx, Paul
next prev parent reply other threads:[~2010-08-01 19:56 UTC|newest]
Thread overview: 412+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-31 17:58 Attempted summary of suspend-blockers LKML thread Paul E. McKenney
2010-07-31 20:19 ` Alan Stern
2010-08-01 4:36 ` Paul E. McKenney
2010-08-01 19:41 ` Alan Stern
2010-08-01 20:11 ` Paul E. McKenney
2010-08-01 22:16 ` Alan Stern
2010-08-01 22:38 ` [linux-pm] " David Brownell
2010-08-02 0:29 ` Paul E. McKenney
2010-08-02 0:28 ` Paul E. McKenney
2010-08-01 15:41 ` Rafael J. Wysocki
2010-08-01 19:56 ` Paul E. McKenney [this message]
2010-08-01 22:44 ` Rafael J. Wysocki
2010-08-02 0:32 ` Paul E. McKenney
2010-08-01 4:52 ` Arjan van de Ven
2010-08-01 5:48 ` Paul E. McKenney
2010-08-01 6:01 ` Arjan van de Ven
2010-08-01 19:12 ` Paul E. McKenney
2010-08-01 20:40 ` Ted Ts'o
2010-08-01 23:00 ` Arjan van de Ven
2010-08-01 23:02 ` Rafael J. Wysocki
2010-08-01 23:12 ` Arjan van de Ven
2010-08-01 23:19 ` [linux-pm] " David Brownell
2010-08-01 23:30 ` James Bottomley
2010-08-02 12:12 ` Ted Ts'o
2010-08-02 16:51 ` James Bottomley
2010-08-02 18:47 ` Ted Ts'o
2010-08-02 3:03 ` Paul E. McKenney
2010-08-02 4:05 ` Arjan van de Ven
2010-08-02 5:06 ` david
2010-08-02 5:44 ` Florian Mickler
2010-08-02 6:06 ` david
2010-08-02 6:40 ` Florian Mickler
2010-08-02 6:53 ` Florian Mickler
2010-08-02 7:02 ` david
2010-08-02 7:23 ` Florian Mickler
2010-08-02 9:06 ` david
2010-08-03 4:41 ` Paul Menage
2010-08-03 11:26 ` Florian Mickler
2010-08-03 4:38 ` Paul Menage
2010-08-03 11:25 ` Florian Mickler
2010-08-02 14:09 ` Paul E. McKenney
2010-08-03 0:08 ` david
2010-08-03 3:21 ` Arve Hjønnevåg
2010-08-03 4:44 ` david
2010-08-03 5:01 ` Arve Hjønnevåg
2010-08-03 5:06 ` david
2010-08-03 22:47 ` Arve Hjønnevåg
2010-08-03 23:19 ` david
2010-08-04 0:10 ` Paul E. McKenney
2010-08-04 0:51 ` david
2010-08-04 3:39 ` Arve Hjønnevåg
2010-08-04 4:47 ` david
2010-08-04 5:46 ` Florian Mickler
2010-08-04 5:59 ` Arve Hjønnevåg
2010-08-04 6:30 ` david
2010-08-04 7:10 ` Arve Hjønnevåg
2010-08-04 7:35 ` Florian Mickler
2010-08-04 7:42 ` david
2010-08-04 11:47 ` Rafael J. Wysocki
2010-08-04 18:51 ` david
2010-08-04 20:31 ` Rafael J. Wysocki
2010-08-04 23:04 ` david
2010-08-04 23:26 ` Rafael J. Wysocki
2010-08-04 23:39 ` david
2010-08-05 0:10 ` Rafael J. Wysocki
2010-08-05 13:21 ` david
2010-08-04 4:58 ` Olivier Galibert
2010-08-04 6:03 ` Arve Hjønnevåg
2010-08-04 6:28 ` Olivier Galibert
2010-08-04 6:50 ` Arve Hjønnevåg
2010-08-04 16:27 ` Paul E. McKenney
2010-08-04 20:43 ` Rafael J. Wysocki
2010-08-04 3:57 ` Arjan van de Ven
2010-08-04 4:55 ` david
2010-08-04 6:12 ` Florian Mickler
2010-08-04 6:48 ` david
2010-08-04 5:22 ` Arve Hjønnevåg
2010-08-04 18:39 ` Paul E. McKenney
2010-08-04 18:32 ` Paul E. McKenney
2010-08-04 20:46 ` Rafael J. Wysocki
2010-08-02 5:34 ` Florian Mickler
2010-08-02 12:27 ` Ted Ts'o
2010-08-02 14:08 ` Rafael J. Wysocki
2010-08-02 14:00 ` Paul E. McKenney
2010-08-01 22:47 ` Arjan van de Ven
2010-08-02 1:10 ` Paul E. McKenney
2010-08-02 3:06 ` Arjan van de Ven
2010-08-02 14:12 ` Paul E. McKenney
2010-08-02 13:52 ` Rafael J. Wysocki
2010-08-02 20:36 ` Paul E. McKenney
2010-08-02 21:33 ` Rafael J. Wysocki
2010-08-02 22:27 ` Paul E. McKenney
2010-08-02 22:40 ` Rafael J. Wysocki
2010-08-03 4:56 ` Arve Hjønnevåg
2010-08-03 14:11 ` Paul E. McKenney
2010-08-04 1:34 ` Arjan van de Ven
2010-08-04 16:32 ` Paul E. McKenney
2010-08-04 16:35 ` Matthew Garrett
2010-08-04 18:30 ` david
2010-08-04 18:55 ` Matthew Garrett
2010-08-04 19:15 ` david
2010-08-04 19:21 ` Matthew Garrett
2010-08-04 19:29 ` david
2010-08-04 19:57 ` Matthew Garrett
2010-08-04 22:20 ` david
2010-08-05 13:38 ` Matthew Garrett
2010-08-05 14:34 ` david
2010-08-05 15:15 ` Brian Swetland
2010-08-04 20:08 ` Paul E. McKenney
2010-08-04 22:29 ` david
2010-08-04 23:06 ` Paul E. McKenney
2010-08-04 23:15 ` david
2010-08-04 20:51 ` Rafael J. Wysocki
2010-08-04 20:56 ` Matthew Garrett
2010-08-04 21:15 ` Paul E. McKenney
2010-08-04 21:31 ` Rafael J. Wysocki
2010-08-04 22:08 ` Arve Hjønnevåg
2010-08-05 0:20 ` Rafael J. Wysocki
2010-08-05 1:02 ` Arve Hjønnevåg
2010-08-05 3:59 ` Paul E. McKenney
2010-08-05 13:40 ` Matthew Garrett
2010-08-05 14:22 ` david
2010-08-05 14:29 ` Brian Swetland
2010-08-05 14:33 ` Matthew Garrett
2010-08-05 15:34 ` Rafael J. Wysocki
2010-08-05 22:02 ` Arve Hjønnevåg
2010-08-05 23:41 ` Rafael J. Wysocki
2010-08-06 0:29 ` Brian Swetland
2010-08-06 0:42 ` Rafael J. Wysocki
2010-08-06 17:09 ` Paul E. McKenney
2010-08-06 1:29 ` Arve Hjønnevåg
2010-08-06 12:43 ` Mark Brown
2010-08-06 16:00 ` Paul E. McKenney
2010-08-06 19:44 ` Alan Stern
2010-08-06 22:04 ` Rafael J. Wysocki
2010-08-07 8:49 ` Rafael J. Wysocki
2010-08-07 13:35 ` Alan Stern
2010-08-08 17:25 ` Rafael J. Wysocki
2010-08-08 19:07 ` Alan Stern
2010-08-07 3:19 ` Arve Hjønnevåg
2010-08-07 8:44 ` Rafael J. Wysocki
2010-08-07 10:02 ` Arve Hjønnevåg
2010-08-07 10:23 ` Arve Hjønnevåg
2010-08-08 19:17 ` Rafael J. Wysocki
2010-08-09 5:29 ` Arve Hjønnevåg
2010-08-10 2:53 ` Rafael J. Wysocki
2010-08-10 4:28 ` Arve Hjønnevåg
2010-08-11 2:11 ` Rafael J. Wysocki
2010-08-08 19:42 ` Alan Stern
2010-08-09 4:52 ` Arve Hjønnevåg
2010-08-08 19:55 ` Rafael J. Wysocki
2010-08-09 5:09 ` Arve Hjønnevåg
2010-08-05 2:39 ` Paul E. McKenney
2010-08-05 2:46 ` Brian Swetland
2010-08-05 4:05 ` Paul E. McKenney
2010-08-04 22:31 ` david
2010-08-04 22:51 ` Arve Hjønnevåg
2010-08-04 22:56 ` david
2010-08-04 23:10 ` Paul E. McKenney
2010-08-04 23:13 ` Anca Emanuel
2010-08-04 23:19 ` Paul E. McKenney
2010-08-04 23:19 ` david
2010-08-04 23:33 ` Rafael J. Wysocki
2010-08-04 23:53 ` david
2010-08-05 0:15 ` Rafael J. Wysocki
2010-08-05 13:28 ` david
2010-08-05 13:47 ` Matthew Garrett
2010-08-05 14:07 ` david
2010-08-05 14:16 ` Matthew Garrett
2010-08-05 14:23 ` Brian Swetland
2010-08-05 5:33 ` Florian Mickler
2010-08-05 5:56 ` Florian Mickler
2010-08-05 13:04 ` david
2010-08-04 23:15 ` Arve Hjønnevåg
2010-08-04 23:23 ` david
2010-08-04 23:30 ` Paul E. McKenney
2010-08-04 23:49 ` david
2010-08-05 0:17 ` Paul E. McKenney
2010-08-05 0:25 ` david
2010-08-05 0:48 ` Paul E. McKenney
2010-08-05 5:18 ` david
2010-08-05 15:12 ` Paul E. McKenney
2010-08-05 15:46 ` david
2010-08-05 18:09 ` Paul E. McKenney
2010-08-05 20:09 ` david
2010-08-05 18:13 ` kevin granade
2010-08-05 18:20 ` Brian Swetland
2010-08-05 20:30 ` david
2010-08-05 20:26 ` david
2010-08-05 23:19 ` Paul E. McKenney
2010-08-06 8:29 ` david
2010-08-06 17:24 ` Paul E. McKenney
2010-08-06 22:12 ` david
2010-08-05 20:31 ` Paul E. McKenney
2010-08-05 20:51 ` kevin granade
2010-08-05 22:09 ` david
2010-08-05 22:16 ` Brian Swetland
2010-08-05 23:03 ` Paul E. McKenney
2010-08-06 0:13 ` Brian Swetland
2010-08-06 0:16 ` david
2010-08-06 0:22 ` Brian Swetland
2010-08-06 1:01 ` david
2010-08-06 1:22 ` Brian Swetland
2010-08-06 8:07 ` david
2010-08-06 12:35 ` Mark Brown
2010-08-06 12:30 ` Mark Brown
2010-08-06 17:22 ` Paul E. McKenney
2010-08-06 17:33 ` Mark Brown
2010-08-06 18:18 ` Paul E. McKenney
2010-08-06 23:35 ` david
2010-08-07 0:14 ` Mark Brown
2010-08-07 0:36 ` Paul E. McKenney
2010-08-07 13:07 ` Mark Brown
2010-08-07 14:36 ` Paul E. McKenney
2010-08-07 1:00 ` david
2010-08-07 6:28 ` Ted Ts'o
2010-08-08 13:35 ` Felipe Contreras
2010-08-08 16:08 ` Matthew Garrett
2010-08-08 17:08 ` Felipe Contreras
2010-08-08 17:09 ` Matthew Garrett
2010-08-08 18:34 ` Mark Brown
2010-08-12 0:23 ` Felipe Contreras
2010-08-07 9:01 ` Rafael J. Wysocki
2010-08-07 10:00 ` david
2010-08-07 15:07 ` Paul E. McKenney
2010-08-07 20:17 ` david
2010-08-07 21:11 ` Paul E. McKenney
2010-08-05 23:05 ` Paul E. McKenney
2010-08-05 16:09 ` [linux-pm] " Mark Brown
2010-08-05 18:21 ` Paul E. McKenney
2010-08-04 23:40 ` Arve Hjønnevåg
2010-08-05 0:00 ` david
2010-08-04 20:42 ` Pavel Machek
2010-08-04 20:48 ` Matthew Garrett
2010-08-04 22:54 ` david
2010-08-04 20:51 ` Paul E. McKenney
2010-08-04 21:15 ` Pavel Machek
2010-08-04 21:39 ` Florian Mickler
2010-08-04 22:42 ` david
2010-08-04 21:40 ` Mark Brown
2010-08-05 1:58 ` Matt Helsley
2010-08-05 2:02 ` Brian Swetland
2010-08-05 3:25 ` Matt Helsley
2010-08-01 6:24 ` Mikael Abrahamsson
2010-08-01 6:49 ` Mikael Abrahamsson
2010-08-01 19:27 ` Paul E. McKenney
2010-08-01 22:49 ` Arjan van de Ven
2010-08-02 3:04 ` Paul E. McKenney
2010-08-01 19:45 ` Alan Stern
2010-08-01 23:16 ` [linux-pm] " James Bottomley
2010-08-02 1:11 ` Paul E. McKenney
2010-08-03 4:18 ` Arve Hjønnevåg
2010-08-03 15:41 ` Paul E. McKenney
2010-08-03 22:23 ` Arve Hjønnevåg
2010-08-04 1:09 ` Paul E. McKenney
2010-08-03 16:02 ` [linux-pm] " James Bottomley
2010-08-03 22:08 ` Arve Hjønnevåg
2010-08-04 4:00 ` James Bottomley
2010-08-04 5:43 ` Arve Hjønnevåg
2010-08-04 19:57 ` Attempted summary of suspend-blockers LKML thread, take two Paul E. McKenney
2010-08-05 13:18 ` david
2010-08-05 13:37 ` Brian Swetland
2010-08-05 23:35 ` Paul E. McKenney
2010-08-05 14:40 ` Paul E. McKenney
2010-08-09 7:26 ` Pavel Machek
2010-08-09 7:34 ` Brian Swetland
2010-08-06 22:54 ` Attempted summary of suspend-blockers LKML thread, take three Paul E. McKenney
2010-08-06 23:59 ` david
2010-08-07 0:25 ` Paul E. McKenney
2010-08-07 1:40 ` david
2010-08-07 2:41 ` Alan Stern
2010-08-07 3:08 ` david
2010-08-07 13:26 ` Alan Stern
2010-08-07 21:01 ` david
2010-08-08 15:36 ` Alan Stern
2010-08-07 2:05 ` Brian Swetland
2010-08-07 3:14 ` david
2010-08-07 6:15 ` Ted Ts'o
2010-08-07 9:11 ` Rafael J. Wysocki
2010-08-07 9:12 ` Rafael J. Wysocki
2010-08-07 14:46 ` Theodore Tso
2010-08-07 20:36 ` david
2010-08-08 16:17 ` Matthew Garrett
2010-08-07 9:38 ` david
2010-08-07 15:32 ` Paul E. McKenney
2010-08-07 21:20 ` david
2010-08-08 12:53 ` Felipe Contreras
2010-08-08 15:57 ` Ted Ts'o
2010-08-08 17:40 ` Felipe Contreras
2010-08-08 18:02 ` Brian Swetland
2010-08-08 21:38 ` Ted Ts'o
2010-08-09 10:24 ` Alan Cox
2010-08-09 18:16 ` Paul E. McKenney
2010-08-09 18:28 ` david
2010-08-09 18:54 ` Paul E. McKenney
2010-08-09 19:18 ` Alan Cox
2010-08-09 19:32 ` Brian Swetland
2010-08-10 1:17 ` david
2010-08-10 4:45 ` Paul E. McKenney
2010-08-10 8:38 ` Alan Cox
2010-08-10 14:11 ` Matthew Garrett
2010-08-10 14:40 ` Alan Cox
2010-08-10 14:55 ` Matthew Garrett
2010-08-10 14:44 ` Alan Cox
2010-08-11 0:44 ` Paul E. McKenney
2010-08-10 18:07 ` david
2010-08-10 18:13 ` Matthew Garrett
2010-08-10 18:18 ` david
2010-08-11 0:42 ` Paul E. McKenney
2010-08-11 1:28 ` david
2010-08-11 2:21 ` Paul E. McKenney
2010-08-11 3:00 ` david
2010-08-11 22:49 ` Paul E. McKenney
2010-08-11 20:00 ` Felipe Contreras
2010-08-11 22:12 ` Paul E. McKenney
2010-08-12 0:17 ` Felipe Contreras
2010-08-12 16:19 ` Paul E. McKenney
2010-08-12 17:52 ` Felipe Contreras
2010-08-12 18:38 ` Paul E. McKenney
2010-08-13 15:14 ` Paul E. McKenney
2010-08-13 15:28 ` Felipe Contreras
2010-08-13 17:13 ` Paul E. McKenney
2010-08-19 23:10 ` david
2010-08-20 4:58 ` Paul E. McKenney
2010-08-11 19:25 ` Felipe Contreras
2010-08-11 19:43 ` Mark Brown
2010-08-11 19:18 ` Felipe Contreras
2010-08-11 22:28 ` Paul E. McKenney
2010-08-12 0:28 ` Felipe Contreras
2010-08-12 1:06 ` Paul E. McKenney
2010-08-12 1:25 ` Felipe Contreras
2010-08-12 3:44 ` Paul E. McKenney
2010-08-12 10:36 ` Felipe Contreras
2010-08-12 10:47 ` Theodore Tso
2010-08-12 11:11 ` Felipe Contreras
2010-08-12 11:40 ` Alan Stern
2010-08-12 12:28 ` Felipe Contreras
2010-08-12 12:52 ` Ted Ts'o
2010-08-12 16:46 ` Felipe Contreras
2010-08-12 18:21 ` Ted Ts'o
2010-08-12 19:05 ` Felipe Contreras
2010-08-12 19:19 ` Brian Swetland
2010-08-12 19:57 ` Jesse Barnes
2010-08-13 3:28 ` Rafael J. Wysocki
2010-08-13 4:25 ` [linux-pm] " Paul Fox
2010-08-13 4:37 ` Arve Hjønnevåg
2010-08-13 15:07 ` Rafael J. Wysocki
2010-08-14 3:18 ` Neil Brown
2010-08-14 10:41 ` Pavel Machek
2010-08-13 16:20 ` Jesse Barnes
2010-08-17 13:18 ` Rafael J. Wysocki
2010-08-17 15:00 ` Alan Stern
2010-08-13 11:09 ` Felipe Contreras
2010-08-14 7:59 ` Pavel Machek
2010-08-13 10:39 ` Alan Cox
2010-08-14 7:50 ` Pavel Machek
2010-08-16 11:36 ` Bernd Petrovitsch
2010-08-16 15:16 ` Jesse Barnes
2010-08-17 0:20 ` Ted Ts'o
2010-08-17 0:55 ` Jesse Barnes
2010-08-17 7:08 ` Neil Brown
2010-08-17 15:33 ` Ted Ts'o
2010-08-17 17:33 ` Paul E. McKenney
2010-09-04 8:57 ` Pavel Machek
2010-08-12 14:09 ` Mark Brown
2010-08-12 16:57 ` Felipe Contreras
2010-08-12 17:33 ` Brian Swetland
2010-08-12 19:00 ` Felipe Contreras
2010-08-12 19:27 ` [linux-pm] " Dominik Brodowski
2010-08-12 17:43 ` Paul E. McKenney
2010-08-12 19:34 ` Felipe Contreras
2010-08-12 19:48 ` Brian Swetland
2010-08-12 19:52 ` [linux-pm] " Dominik Brodowski
2010-08-13 10:30 ` Alan Cox
2010-08-13 10:43 ` Felipe Contreras
2010-08-13 10:35 ` Alan Cox
2010-08-13 10:58 ` Felipe Contreras
2010-08-13 14:42 ` Paul E. McKenney
2010-08-28 8:51 ` Pavel Machek
2010-08-31 0:04 ` Paul E. McKenney
2010-08-13 15:22 ` Paul E. McKenney
2010-08-13 15:40 ` Felipe Contreras
2010-08-13 15:57 ` [linux-pm] " Dominik Brodowski
2010-08-13 16:06 ` Joe Perches
2010-08-13 16:19 ` Dominik Brodowski
2010-08-13 16:19 ` Felipe Contreras
2010-08-13 17:11 ` James Bottomley
2010-08-13 19:08 ` Ted Ts'o
2010-08-13 19:29 ` Brian Swetland
2010-08-14 0:43 ` James Bottomley
2010-08-16 21:11 ` Rafael J. Wysocki
2010-08-17 12:07 ` Igor Stoppa
2010-08-13 10:57 ` Alan Cox
2010-08-13 15:29 ` Paul E. McKenney
2010-08-14 7:38 ` Pavel Machek
2010-08-14 15:10 ` Paul E. McKenney
2010-08-14 16:53 ` Arjan van de Ven
2010-08-14 18:15 ` David Brownell
2010-08-15 7:00 ` Paul E. McKenney
2010-08-16 16:09 ` Matthew Garrett
2010-08-17 15:25 ` Ted Ts'o
2010-08-10 14:15 ` Mark Brown
2010-08-11 16:57 ` Felipe Contreras
2010-08-11 19:31 ` Ted Ts'o
2010-08-11 21:25 ` Felipe Contreras
2010-08-11 21:37 ` Brian Swetland
2010-08-11 22:03 ` Felipe Contreras
2010-08-11 22:12 ` Brian Swetland
2010-08-12 0:46 ` Felipe Contreras
2010-08-12 1:03 ` Brian Swetland
2010-08-08 12:40 ` Felipe Contreras
2010-08-08 18:07 ` Paul E. McKenney
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=20100801195617.GN2470@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arve@android.com \
--cc=florian@mickler.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=mjg59@srcf.ucam.org \
--cc=pavel@ucw.cz \
--cc=peterz@infradead.org \
--cc=rjw@sisk.pl \
--cc=stern@rowland.harvard.edu \
--cc=swetland@google.com \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).