linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).