From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: "Arve Hjønnevåg" <arve@android.com>
Cc: Alan Stern <stern@rowland.harvard.edu>,
Linux-pm mailing list <linux-pm@lists.linux-foundation.org>,
Kernel development list <linux-kernel@vger.kernel.org>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>,
Randy Dunlap <rdunlap@xenotime.net>,
Andrew Morton <akpm@linux-foundation.org>,
Andi Kleen <ak@linux.intel.com>,
Cornelia Huck <cornelia.huck@de.ibm.com>,
Tejun Heo <tj@kernel.org>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Nigel Cunningham <nigel@tuxonice.net>,
Ming Lei <tom.leiming@gmail.com>,
Wu Fengguang <fengguang.wu@intel.com>,
Maxim Levitsky <maximlevitsky@gmail.com>,
linux-doc@vger.kernel.org
Subject: Re: [PATCH 1/8] PM: Opportunistic suspend support.
Date: Tue, 25 May 2010 16:26:25 -0700 [thread overview]
Message-ID: <20100525232625.GB5331@core.coreip.homeip.net> (raw)
In-Reply-To: <AANLkTikaoXH5T4FJ5sY9OnAyjhaY8wa7rH6S7_k9F_m8@mail.gmail.com>
On Tue, May 25, 2010 at 04:13:35PM -0700, Arve Hjønnevåg wrote:
> 2010/5/25 Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> > On Tue, May 25, 2010 at 03:37:48PM -0700, Arve Hjønnevåg wrote:
> >> 2010/5/25 Dmitry Torokhov <dmitry.torokhov@gmail.com>:
> >> > On Tue, May 25, 2010 at 03:23:23PM -0700, Arve Hjønnevåg wrote:
> >> >> On Tue, May 25, 2010 at 11:47 AM, Dmitry Torokhov
> >> >> <dmitry.torokhov@gmail.com> wrote:
> >> >> > On Tue, May 25, 2010 at 02:35:17PM -0400, Alan Stern wrote:
> >> >> >> On Tue, 25 May 2010, Dmitry Torokhov wrote:
> >> >> >>
> >> >> >> > > Here's the scenario:
> >> >> >> > >
> >> >> >> > > The system is awake, and the user presses a key. The keyboard driver
> >> >> >> > > processes the keystroke and puts it in an input queue. A user process
> >> >> >> > > reads it from the event queue, thereby emptying the queue.
> >> >> >> > >
> >> >> >> > > At that moment, the system decides to go into opportunistic suspend.
> >> >> >> > > Since the input queue is empty, there's nothing to stop it. As the
> >> >> >> > > first step, userspace is frozen -- before the process has a chance to
> >> >> >> > > do anything with the keystroke it just read. As a result, the system
> >> >> >> > > stays asleep until something else wakes it up, even though the
> >> >> >> > > keystroke was important and should have prevented it from sleeping.
> >> >> >> > >
> >> >> >> > > Suspend blockers protect against this scenario. Here's how:
> >> >> >> > >
> >> >> >> > > The user process doesn't read the input queue directly; instead it
> >> >> >> > > does a select or poll. When it sees there is data in the queue, it
> >> >> >> > > first acquires a suspend blocker and then reads the data.
> >> >> >> > >
> >> >> >> > > Now the system _can't_ go into opportunistic suspend, because a suspend
> >> >> >> > > blocker is active. The user process can do whatever it wants with the
> >> >> >> > > keystroke. When it is finished, it releases the suspend blocker and
> >> >> >> > > loops back to the select/poll call.
> >> >> >> > >
> >> >> >> >
> >> >> >> > What you describe can be done in userspace though, via a "suspend manager"
> >> >> >> > process. Tasks reading input events will post "busy" events to stop the
> >> >> >> > manager process from sending system into suspend. But this can be confined to
> >> >> >> > Android userspace, leaving the kernel as is (well, kernel needs to be modified
> >> >> >> > to not go into suspend with full queues, but that is using existing kernel
> >> >> >> > APIs).
> >> >> >>
> >> >> >> I think that could be made to work. And it might remove the need for
> >> >> >> the userspace suspend-blocker API, which would be an advantage. It
> >> >> >> could even remove the need for the opportunistic-suspend workqueue --
> >> >> >> opportunistic suspends would be initiated by the "suspend manager"
> >> >> >> process instead of by the kernel.
> >> >> >>
> >> >> >> However you still have the issue of modifying the kernel drivers to
> >> >> >> disallow opportunistic suspend if their queues are non-empty. Doing
> >> >> >> that is more or less equivalent to implementing kernel-level suspend
> >> >> >> blockers. (The suspend blocker approach is slightly more efficient,
> >> >> >> because it will prevent a suspend from starting if a queue is
> >> >> >> non-empty, instead of allowing the suspend to start and then aborting
> >> >> >> it partway through.)
> >> >> >>
> >> >> >> Maybe I'm missing something here... No doubt someone will point it out
> >> >> >> if I am.
> >> >> >>
> >> >> >
> >> >> > Well, from my perspective that would limit changes to the evdev driver
> >> >> > (well, limited input core plumbing will be needed) but that is using the
> >> >> > current PM infrastructure. The HW driver changes will be limited to what
> >> >> > you described "type 2" in your other e-mail.
> >> >> >
> >> >> > Also, not suspending while events are in progress) is probably
> >> >> > beneficial for platforms other than Android as well. So unless I am
> >> >> > missing something this sounds like a win.
> >> >> >
> >> >>
> >> >> How would this limit the changes you need in the evdev driver? It need
> >> >> to block suspend when there are unprocessed events in some queues.
> >> >> Suspend blockers gives you an api to do this, without it, you check
> >> >> the queues in your suspend hook and abort suspend if they are not
> >> >> empty. Without suspend blockers you have no api to signal that it is
> >> >> OK to suspend again, so you are forcing the thread that tried to
> >> >> suspend to poll until you stop aborting suspend.
> >> >
> >> > No, you do not need to poll. You just set a timeout (short or long,
> >> > depending on your needs) and if no userspace task blocked suspend
> >> > durng that time you attempt to initiate suspend from your manager
> >> > process. If it succeeds - good, if not that means that more events came
> >> > your way and you have to do it later.
> >> >
> >>
> >> How is that not polling? If the user is holding down a key, the keypad
> >> driver has to block suspend, and user space will try to suspend again
> >> and again and again...
> >>
> >
> > If your userpsace is that stupid - sure. However, you can:
> >
> > 1. Notify the suspend manager process that he rest of your userspace is
> > busy handling keystrokes so that it does not try to suspend while there
> > are events pending.
>
> You are missing the point. There are no event pending. The kernel
> reported the key down event, it was handled, but the keypad driver is
> still scanning to see if the user presses another key,
Employ reasonable timeout.
> or releases the
> currently held key.
>
Userspace consumer should wait for the key release and retract "busy"
once event is received and handled.
> >
> > 2. Wait a tiny bit after last application notified you that it finished
> > processing events.
> >
> > So basically the difference is that with in-kernel suspend blockers,
> > there is a tiny window where we haven't started the suspend yet but are
> > about to the driver has a chance to prevent entire system from starting
> > sleep.
>
> No, the difference is that if a driver needs to prevent suspend for an
> extended period of time, you don't have user space continuously
> polling to see if it can suspend.
Why would a driver, on its own, prevent suspend for extended periods of
time? I think that the decision should originate from userspace, kernel
is here just to serve the requests.
>
> >
> > Without the blocker we may start suspending and will stop midcycle. We
> > may be even better off in the end since we could leave some devices
> > still powered down after aborting system-wide suspend.
> >
>
> That does not sound right.
Why doesn't it? If a device implements runtime PM it may chose remain in
powered-down mode even if system is awake.
--
Dmitry
next prev parent reply other threads:[~2010-05-25 23:26 UTC|newest]
Thread overview: 697+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-21 22:46 [PATCH 0/8] Suspend block api (version 8) Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 1/8] PM: Opportunistic suspend support Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-05-21 22:46 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-05-26 8:43 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Peter Zijlstra
2010-05-26 10:47 ` Arve Hjønnevåg
2010-05-26 10:50 ` Peter Zijlstra
2010-05-26 23:13 ` Arve Hjønnevåg
2010-05-26 10:51 ` Florian Mickler
2010-05-26 11:06 ` Peter Zijlstra
2010-05-26 21:57 ` Rafael J. Wysocki
2010-05-26 22:14 ` Alan Cox
2010-05-26 22:18 ` Brian Swetland
2010-05-26 23:00 ` Alan Cox
2010-05-26 23:00 ` Arve Hjønnevåg
2010-05-26 23:52 ` Alan Cox
2010-05-26 22:45 ` Rafael J. Wysocki
2010-05-26 22:18 ` [linux-pm] " Alan Stern
2010-05-26 22:34 ` Rafael J. Wysocki
2010-05-22 2:47 ` [PATCH 1/8] PM: Opportunistic suspend support Alan Stern
2010-05-25 1:05 ` Arve Hjønnevåg
2010-05-25 1:34 ` Alan Stern
2010-05-25 16:57 ` Dmitry Torokhov
2010-05-25 18:08 ` Alan Stern
2010-05-25 18:24 ` Dmitry Torokhov
2010-05-25 18:35 ` Alan Stern
2010-05-25 18:47 ` Dmitry Torokhov
2010-05-25 19:05 ` Alan Stern
2010-05-25 22:23 ` Arve Hjønnevåg
2010-05-25 22:32 ` Dmitry Torokhov
2010-05-25 22:37 ` Arve Hjønnevåg
2010-05-25 22:55 ` Dmitry Torokhov
2010-05-25 23:13 ` Arve Hjønnevåg
2010-05-25 23:26 ` Dmitry Torokhov [this message]
2010-05-25 23:54 ` Arve Hjønnevåg
2010-05-26 0:26 ` Dmitry Torokhov
2010-05-26 0:36 ` Arve Hjønnevåg
2010-05-26 13:59 ` Alan Stern
2010-05-26 21:51 ` Rafael J. Wysocki
2010-05-26 22:12 ` Alan Stern
2010-05-26 22:47 ` Rafael J. Wysocki
2010-05-26 23:09 ` Arve Hjønnevåg
2010-05-27 0:47 ` Alan Stern
2010-05-27 0:52 ` Arve Hjønnevåg
2010-05-27 14:09 ` Alan Stern
2010-05-27 18:13 ` Dmitry Torokhov
2010-05-27 20:00 ` Rafael J. Wysocki
2010-05-27 23:36 ` Arve Hjønnevåg
2010-05-27 23:48 ` Dmitry Torokhov
2010-05-27 23:52 ` Arve Hjønnevåg
2010-05-25 22:59 ` Kevin Hilman
2010-05-26 0:04 ` Arve Hjønnevåg
2010-05-25 19:47 ` Rafael J. Wysocki
2010-05-25 19:53 ` Dmitry Torokhov
2010-05-25 20:21 ` Rafael J. Wysocki
2010-05-25 20:44 ` Dmitry Torokhov
2010-05-25 21:04 ` [linux-pm] " Vitaly Wool
2010-05-25 21:15 ` Rafael J. Wysocki
2010-05-25 21:00 ` Alan Stern
2010-05-25 21:44 ` Rafael J. Wysocki
2010-05-25 22:33 ` Arve Hjønnevåg
2010-05-26 8:42 ` Peter Zijlstra
2010-05-26 8:53 ` Peter Zijlstra
2010-05-26 12:49 ` Matthew Garrett
2010-05-26 12:57 ` Peter Zijlstra
2010-05-26 13:20 ` Matthew Garrett
2010-05-26 22:03 ` Rafael J. Wysocki
2010-05-27 7:23 ` Neil Brown
2010-05-29 2:52 ` [linux-pm] " mark gross
2010-05-29 4:04 ` Arve Hjønnevåg
2010-05-30 8:08 ` Neil Brown
2010-05-30 19:52 ` Rafael J. Wysocki
2010-05-30 23:03 ` Neil Brown
2010-05-31 5:56 ` Neil Brown
2010-05-30 20:32 ` mark gross
2010-05-31 10:03 ` Arve Hjønnevåg
2010-05-26 9:23 ` Florian Mickler
2010-05-26 9:33 ` Peter Zijlstra
2010-05-26 9:54 ` Arve Hjønnevåg
2010-05-26 10:06 ` Peter Zijlstra
2010-05-26 10:17 ` Arve Hjønnevåg
2010-05-26 10:21 ` Peter Zijlstra
2010-05-26 10:29 ` Pekka Enberg
2010-05-26 16:18 ` James Bottomley
2010-05-26 16:28 ` Peter Zijlstra
2010-05-26 16:38 ` Kevin Hilman
2010-05-26 16:54 ` James Bottomley
2010-05-26 17:00 ` Peter Zijlstra
2010-05-26 17:14 ` James Bottomley
2010-05-26 17:23 ` Peter Zijlstra
2010-05-26 17:33 ` James Bottomley
2010-05-26 17:42 ` Pavel Machek
2010-05-26 18:09 ` James Bottomley
2010-05-26 17:28 ` Pavel Machek
2010-05-26 19:15 ` Florian Mickler
2010-05-26 22:10 ` Rafael J. Wysocki
2010-05-27 8:13 ` Bernd Petrovitsch
2010-05-26 16:59 ` Pavel Machek
2010-05-26 17:01 ` Peter Zijlstra
2010-05-26 17:24 ` James Bottomley
2010-05-26 17:51 ` Thomas Gleixner
2010-05-26 18:23 ` James Bottomley
2010-05-26 18:50 ` Valdis.Kletnieks
2010-05-26 20:06 ` James Bottomley
2010-05-27 8:17 ` Bernd Petrovitsch
2010-05-27 9:07 ` Arve Hjønnevåg
2010-05-26 22:25 ` Rafael J. Wysocki
2010-05-26 22:13 ` Rafael J. Wysocki
2010-05-26 17:25 ` Pekka Enberg
2010-05-26 17:40 ` James Bottomley
2010-05-26 18:07 ` Pekka Enberg
2010-05-26 10:30 ` Arve Hjønnevåg
2010-05-26 10:35 ` Pekka Enberg
2010-05-26 11:16 ` [linux-pm] " Vitaly Wool
2010-05-26 20:51 ` Linus Walleij
2010-05-27 7:34 ` Neil Brown
2010-05-26 8:42 ` Peter Zijlstra
2010-05-25 23:00 ` Kevin Hilman
2010-05-26 8:43 ` Peter Zijlstra
2010-05-24 0:46 ` [PATCH 0/8] Suspend block api (version 8) Rafael J. Wysocki
2010-05-24 4:32 ` Felipe Balbi
2010-05-24 18:49 ` Rafael J. Wysocki
2010-05-24 22:51 ` Kevin Hilman
2010-05-24 23:38 ` Rafael J. Wysocki
2010-05-26 8:47 ` Peter Zijlstra
2010-05-26 9:41 ` Arve Hjønnevåg
2010-05-26 9:45 ` Peter Zijlstra
2010-05-26 9:49 ` Brian Swetland
2010-05-26 10:02 ` Florian Mickler
2010-05-26 10:08 ` Peter Zijlstra
2010-05-26 10:19 ` Florian Mickler
2010-05-26 11:18 ` [linux-pm] " Vitaly Wool
2010-05-26 11:37 ` Florian Mickler
2010-05-26 12:01 ` Vitaly Wool
2010-05-26 12:24 ` Florian Mickler
2010-05-26 12:29 ` Felipe Balbi
2010-05-26 12:33 ` Florian Mickler
2010-05-26 12:35 ` Felipe Balbi
2010-05-26 12:54 ` Florian Mickler
2010-05-26 13:06 ` Peter Zijlstra
2010-05-26 13:19 ` Alan Cox
2010-05-26 13:39 ` Florian Mickler
2010-05-27 8:58 ` Felipe Contreras
2010-05-26 12:41 ` Peter Zijlstra
2010-05-26 13:03 ` Florian Mickler
2010-05-26 13:07 ` Peter Zijlstra
2010-05-26 13:30 ` Florian Mickler
2010-05-26 12:55 ` Vitaly Wool
2010-05-26 13:19 ` Florian Mickler
2010-05-26 14:38 ` Alan Stern
2010-05-27 10:56 ` Florian Mickler
2010-05-27 12:27 ` Igor Stoppa
2010-05-27 12:28 ` Igor Stoppa
2010-05-26 13:16 ` Alan Cox
2010-05-26 13:46 ` Thomas Gleixner
2010-05-26 15:33 ` Felipe Balbi
2010-05-26 15:11 ` Florian Mickler
2010-05-26 15:12 ` Peter Zijlstra
2010-05-26 15:15 ` Peter Zijlstra
2010-05-26 15:40 ` Florian Mickler
2010-05-26 15:45 ` Peter Zijlstra
2010-05-26 15:47 ` Florian Mickler
2010-05-26 15:49 ` Florian Mickler
2010-05-26 15:16 ` Peter Zijlstra
2010-05-26 15:45 ` Alan Cox
2010-05-26 17:22 ` Thomas Gleixner
2010-05-26 18:02 ` Alan Cox
2010-05-26 19:56 ` Florian Mickler
2010-05-26 20:03 ` Vitaly Wool
2010-05-27 5:11 ` Florian Mickler
2010-05-27 13:35 ` Thomas Gleixner
2010-05-28 7:25 ` Florian Mickler
2010-05-27 13:26 ` Thomas Gleixner
2010-05-26 19:54 ` Florian Mickler
2010-05-26 22:09 ` Alan Cox
2010-05-27 5:14 ` Florian Mickler
2010-05-27 7:43 ` Vitaly Wool
2010-05-27 13:37 ` Thomas Gleixner
2010-05-26 15:19 ` Kevin Hilman
2010-05-26 22:30 ` Arve Hjønnevåg
2010-05-26 23:39 ` Alan Cox
2010-05-27 0:49 ` Arve Hjønnevåg
2010-05-27 14:29 ` Thomas Gleixner
2010-05-27 15:06 ` Alan Stern
2010-05-27 15:09 ` Peter Zijlstra
2010-05-27 15:33 ` Alan Cox
2010-05-27 15:34 ` Peter Zijlstra
2010-05-27 15:47 ` Alan Stern
2010-05-27 16:06 ` Thomas Gleixner
2010-05-27 21:00 ` Rafael J. Wysocki
2010-06-03 4:24 ` Paul Mundt
2010-06-03 6:58 ` Brian Swetland
2010-06-03 8:14 ` Peter Zijlstra
2010-05-27 15:31 ` Alan Cox
2010-05-27 16:27 ` Felipe Balbi
2010-05-27 17:04 ` Alan Stern
2010-05-27 17:13 ` Peter Zijlstra
2010-05-27 17:29 ` Alan Stern
2010-05-27 17:32 ` Peter Zijlstra
2010-05-27 21:10 ` Rafael J. Wysocki
2010-05-27 21:34 ` Alan Cox
2010-05-27 17:15 ` Felipe Balbi
2010-05-27 17:25 ` Thomas Gleixner
2010-05-27 17:41 ` Alan Stern
2010-05-27 21:15 ` Rafael J. Wysocki
2010-05-27 21:29 ` Alan Cox
2010-05-27 21:40 ` Thomas Gleixner
2010-05-27 23:43 ` Rafael J. Wysocki
2010-05-27 23:50 ` Arve Hjønnevåg
2010-05-31 4:33 ` Neil Brown
2010-05-31 22:05 ` Rafael J. Wysocki
2010-05-31 23:00 ` Neil Brown
2010-06-01 0:32 ` Rafael J. Wysocki
2010-06-01 0:54 ` Thomas Gleixner
2010-06-01 1:33 ` Neil Brown
2010-06-01 1:49 ` Thomas Gleixner
2010-06-01 2:20 ` Neil Brown
2010-06-01 5:35 ` Florian Mickler
2010-06-03 13:44 ` David Brownell
2010-06-01 10:50 ` Thomas Gleixner
2010-06-02 5:32 ` [PATCH] - race-free suspend. Was: " Neil Brown
2010-06-02 7:05 ` Arve Hjønnevåg
2010-06-02 8:06 ` Neil Brown
2010-06-02 8:50 ` Florian Mickler
2010-06-02 10:23 ` Neil Brown
2010-06-02 9:12 ` Arve Hjønnevåg
2010-06-02 9:33 ` Thomas Gleixner
2010-06-02 9:53 ` Arve Hjønnevåg
2010-06-02 12:26 ` Thomas Gleixner
2010-06-02 11:02 ` Neil Brown
2010-06-02 19:05 ` Florian Mickler
2010-06-02 23:21 ` Neil Brown
2010-06-02 23:32 ` Dmitry Torokhov
2010-06-03 1:27 ` Florian Mickler
2010-06-03 2:44 ` Arve Hjønnevåg
2010-06-03 3:26 ` Neil Brown
2010-06-04 7:14 ` Dmitry Torokhov
2010-06-04 7:55 ` Arve Hjønnevåg
2010-06-02 18:05 ` Brian Swetland
2010-06-03 6:04 ` [linux-pm] [PATCH] - race-free suspend. Was: " mark gross
2010-06-03 6:12 ` Brian Swetland
2010-06-03 13:36 ` mark gross
2010-06-03 17:26 ` Brian Swetland
2010-06-03 6:33 ` [PATCH] - race-free suspend. Was: Re: [linux-pm] " Neil Brown
2010-06-03 6:43 ` Brian Swetland
2010-06-03 14:21 ` tytso
2010-06-03 15:41 ` Peter Zijlstra
2010-06-02 20:41 ` Rafael J. Wysocki
2010-06-02 22:05 ` Neil Brown
2010-06-02 22:15 ` Rafael J. Wysocki
2010-06-01 2:10 ` Alan Stern
2010-06-01 2:38 ` Neil Brown
2010-06-01 14:47 ` Alan Stern
2010-06-01 22:08 ` Rafael J. Wysocki
2010-06-02 0:43 ` Neil Brown
2010-06-02 20:55 ` Rafael J. Wysocki
2010-06-01 22:03 ` Rafael J. Wysocki
2010-06-01 5:04 ` Arve Hjønnevåg
2010-06-01 22:00 ` Rafael J. Wysocki
2010-05-29 3:10 ` mark gross
2010-05-27 14:06 ` Matthew Garrett
2010-05-27 14:28 ` Peter Zijlstra
2010-05-27 14:35 ` Matthew Garrett
2010-05-27 14:41 ` Peter Zijlstra
2010-05-27 14:43 ` Peter Zijlstra
2010-05-27 15:10 ` Alan Cox
2010-05-27 15:07 ` Peter Zijlstra
2010-05-27 16:28 ` Florian Mickler
2010-05-27 21:17 ` Rafael J. Wysocki
2010-05-27 15:05 ` Alan Cox
2010-05-27 15:05 ` Peter Zijlstra
2010-05-27 16:07 ` Matthew Garrett
2010-05-27 16:41 ` Alan Cox
2010-05-27 16:52 ` Matthew Garrett
2010-05-27 18:02 ` Alan Cox
2010-05-27 18:12 ` Matthew Garrett
2010-05-27 18:48 ` Alan Cox
2010-05-27 18:56 ` Matthew Garrett
2010-05-27 19:25 ` Alan Cox
2010-05-27 19:29 ` Matthew Garrett
2010-05-27 19:53 ` Alan Cox
2010-05-27 20:11 ` Matthew Garrett
2010-05-27 20:53 ` Alan Cox
2010-05-27 21:08 ` Matthew Garrett
2010-05-27 21:24 ` Alan Stern
2010-05-27 21:28 ` Matthew Garrett
2010-05-28 10:03 ` Bernd Petrovitsch
2010-05-28 11:45 ` Matthew Garrett
2010-05-28 17:12 ` Bernd Petrovitsch
2010-05-27 19:32 ` Zygo Blaxell
2010-05-27 15:32 ` Thomas Gleixner
2010-05-27 15:52 ` Matthew Garrett
2010-05-27 16:16 ` Alan Cox
2010-05-27 16:19 ` Matthew Garrett
2010-05-27 17:04 ` Thomas Gleixner
2010-05-27 17:07 ` Matthew Garrett
2010-05-27 17:13 ` Peter Zijlstra
2010-05-27 17:16 ` Matthew Garrett
2010-05-27 17:20 ` Peter Zijlstra
2010-05-27 17:25 ` Matthew Garrett
2010-05-27 17:28 ` Peter Zijlstra
2010-05-27 17:32 ` Matthew Garrett
2010-05-27 17:35 ` Peter Zijlstra
2010-05-27 17:41 ` Matthew Garrett
2010-05-27 17:46 ` Peter Zijlstra
2010-05-27 17:52 ` Matthew Garrett
2010-05-27 17:56 ` Peter Zijlstra
2010-05-27 17:59 ` Matthew Garrett
2010-05-27 18:06 ` Peter Zijlstra
2010-05-27 18:17 ` Matthew Garrett
2010-05-27 18:22 ` Peter Zijlstra
2010-05-27 18:31 ` Matthew Garrett
2010-05-27 19:06 ` Alan Cox
2010-05-27 21:03 ` Alan Cox
2010-05-27 21:06 ` Matthew Garrett
2010-05-27 18:12 ` Thomas Gleixner
2010-05-27 18:18 ` Matthew Garrett
2010-05-27 21:37 ` Alan Cox
2010-05-27 21:36 ` Matthew Garrett
2010-05-27 21:56 ` Alan Cox
2010-05-27 22:08 ` Matthew Garrett
2010-05-27 22:32 ` Alan Cox
2010-05-27 22:35 ` Matthew Garrett
2010-05-27 23:02 ` Alan Stern
2010-05-27 17:32 ` Alan Stern
2010-05-27 17:37 ` Peter Zijlstra
2010-05-27 21:36 ` Rafael J. Wysocki
2010-05-27 21:49 ` Alan Cox
2010-05-27 17:30 ` Alan Cox
2010-05-27 17:26 ` Matthew Garrett
2010-05-27 17:18 ` Felipe Balbi
2010-05-27 17:00 ` Thomas Gleixner
2010-05-27 18:35 ` Zygo Blaxell
2010-05-27 16:45 ` Thomas Gleixner
2010-05-27 16:59 ` Matthew Garrett
2010-05-27 17:15 ` Thomas Gleixner
2010-05-27 17:23 ` Matthew Garrett
2010-05-27 17:26 ` Peter Zijlstra
2010-05-27 17:49 ` Alan Cox
2010-05-27 17:50 ` Matthew Garrett
2010-05-27 18:17 ` Alan Cox
2010-05-27 18:20 ` Matthew Garrett
2010-05-27 19:09 ` Alan Cox
2010-05-27 21:55 ` Rafael J. Wysocki
2010-05-27 22:20 ` Alan Cox
2010-05-27 23:50 ` Rafael J. Wysocki
2010-05-27 18:18 ` Thomas Gleixner
2010-05-27 18:23 ` Matthew Garrett
2010-05-27 19:59 ` Alan Cox
2010-05-27 17:59 ` Thomas Gleixner
2010-05-27 18:26 ` Matthew Garrett
2010-05-27 18:53 ` Thomas Gleixner
2010-05-27 19:06 ` Matthew Garrett
2010-05-27 20:23 ` Thomas Gleixner
2010-05-27 20:38 ` Matthew Garrett
2010-05-27 21:26 ` Alan Stern
2010-05-27 21:33 ` Thomas Gleixner
2010-05-27 21:38 ` Matthew Garrett
2010-05-27 21:49 ` Alan Stern
2010-05-28 8:26 ` Thomas Gleixner
2010-05-27 20:03 ` Alan Cox
2010-06-21 15:57 ` Pavel Machek
2010-05-27 17:36 ` Alan Stern
2010-05-27 18:08 ` Thomas Gleixner
2010-05-27 22:01 ` Rafael J. Wysocki
2010-05-27 21:25 ` Alan Cox
2010-05-27 21:38 ` Alan Stern
2010-05-27 22:08 ` Alan Cox
2010-05-27 22:09 ` Matthew Garrett
2010-05-27 22:23 ` Alan Cox
2010-05-27 22:36 ` Matthew Garrett
2010-05-27 22:55 ` Alan Cox
2010-05-28 4:31 ` tytso
2010-05-28 7:11 ` Peter Zijlstra
2010-05-29 0:43 ` Arve Hjønnevåg
2010-05-29 8:10 ` Peter Zijlstra
2010-05-29 14:16 ` Alan Stern
2010-05-29 16:10 ` James Bottomley
2010-05-29 18:12 ` Peter Zijlstra
2010-05-31 20:12 ` Florian Mickler
2010-05-31 20:47 ` Florian Mickler
2010-06-05 17:04 ` Felipe Contreras
2010-06-05 19:04 ` Rafael J. Wysocki
2010-06-05 19:16 ` Peter Zijlstra
2010-06-05 19:39 ` Rafael J. Wysocki
2010-06-05 19:52 ` Peter Zijlstra
2010-06-05 19:53 ` Felipe Contreras
2010-05-31 21:13 ` Florian Mickler
2010-05-31 20:52 ` James Bottomley
2010-05-31 21:14 ` Rafael J. Wysocki
2010-06-05 17:16 ` Felipe Contreras
2010-06-05 19:49 ` Florian Mickler
2010-06-05 19:56 ` Felipe Contreras
2010-06-05 21:52 ` Florian Mickler
2010-05-29 18:12 ` Peter Zijlstra
2010-05-29 18:12 ` Peter Zijlstra
2010-05-31 20:49 ` Thomas Gleixner
2010-05-31 21:21 ` James Bottomley
2010-05-31 21:46 ` Thomas Gleixner
2010-06-01 5:21 ` Arve Hjønnevåg
2010-06-01 11:10 ` Thomas Gleixner
2010-06-02 3:32 ` Arve Hjønnevåg
2010-06-02 7:00 ` Thomas Gleixner
2010-06-02 7:17 ` Arve Hjønnevåg
2010-06-02 7:21 ` Thomas Gleixner
2010-05-31 22:17 ` Thomas Gleixner
2010-06-01 13:51 ` Matthew Garrett
2010-06-01 21:01 ` James Bottomley
2010-06-01 21:39 ` David Brownell
2010-06-01 22:24 ` Rafael J. Wysocki
2010-06-01 22:36 ` James Bottomley
2010-06-02 1:10 ` Arve Hjønnevåg
2010-06-02 2:44 ` Gross, Mark
2010-06-02 3:15 ` Arve Hjønnevåg
2010-06-02 3:26 ` Gross, Mark
2010-06-02 4:02 ` James Bottomley
2010-06-02 4:41 ` Arve Hjønnevåg
2010-06-02 15:05 ` James Bottomley
2010-06-02 19:47 ` Florian Mickler
2010-06-02 20:41 ` James Bottomley
2010-06-02 22:27 ` Arve Hjønnevåg
2010-06-02 23:03 ` James Bottomley
2010-06-02 23:06 ` Florian Mickler
2010-06-02 23:15 ` Gross, Mark
2010-06-03 10:03 ` Alan Cox
2010-06-03 10:05 ` Peter Zijlstra
2010-06-03 14:42 ` Kevin Hilman
2010-06-03 14:52 ` Gross, Mark
2010-06-03 16:58 ` Kevin Hilman
2010-06-03 17:01 ` James Bottomley
2010-06-03 17:16 ` Muralidhar, Rajeev D
2010-06-03 21:50 ` Bryan Huntsman
2010-06-03 13:24 ` James Bottomley
2010-06-03 14:18 ` Florian Mickler
2010-06-03 14:26 ` Gross, Mark
2010-06-03 14:35 ` Thomas Gleixner
2010-06-03 14:55 ` James Bottomley
2010-06-02 2:45 ` mark gross
2010-06-02 4:14 ` James Bottomley
2010-05-31 21:41 ` Thomas Gleixner
2010-05-31 22:23 ` Rafael J. Wysocki
2010-05-31 22:27 ` Thomas Gleixner
2010-05-31 23:47 ` James Bottomley
2010-05-28 9:37 ` Alan Cox
2010-05-28 11:41 ` Matthew Garrett
2010-05-28 12:26 ` Igor Stoppa
2010-05-28 12:52 ` Brian Swetland
2010-05-28 13:32 ` Igor Stoppa
2010-05-28 13:27 ` Brian Swetland
2010-05-28 14:12 ` Igor Stoppa
2010-05-28 23:42 ` Felipe Contreras
2010-05-29 8:28 ` Florian Mickler
2010-05-29 8:56 ` Florian Mickler
2010-05-31 5:55 ` Igor Stoppa
2010-06-05 16:58 ` Felipe Contreras
2010-05-28 14:20 ` Alan Cox
2010-05-28 13:39 ` tytso
2010-05-28 14:14 ` Igor Stoppa
2010-05-28 14:21 ` Matthew Garrett
2010-05-28 14:29 ` Brian Swetland
2010-05-28 14:41 ` Matthew Garrett
2010-05-28 15:06 ` Alan Cox
2010-05-28 15:13 ` Brian Swetland
2010-05-28 16:31 ` Alan Cox
2010-05-28 17:01 ` Alan Stern
2010-05-28 21:53 ` Arve Hjønnevåg
2010-05-28 17:27 ` Zygo Blaxell
2010-05-28 18:16 ` Peter Zijlstra
2010-05-28 19:51 ` Zygo Blaxell
2010-05-29 8:43 ` Vitaly Wool
2010-05-28 13:54 ` Alan Cox
2010-05-28 14:28 ` Igor Stoppa
2010-05-28 12:16 ` Theodore Tso
2010-05-28 12:28 ` Theodore Tso
2010-05-28 12:49 ` Igor Stoppa
2010-05-28 12:31 ` Theodore Tso
2010-05-28 13:30 ` Igor Stoppa
2010-05-28 9:53 ` Alan Cox
2010-05-28 4:55 ` Brian Swetland
2010-05-28 6:39 ` Florian Mickler
2010-05-28 2:47 ` Arve Hjønnevåg
2010-05-28 9:17 ` Alan Cox
2010-05-28 9:32 ` Arve Hjønnevåg
2010-05-28 11:16 ` Alan Cox
2010-05-28 11:20 ` Arve Hjønnevåg
2010-05-28 13:55 ` Alan Cox
2010-05-28 14:05 ` Matthew Garrett
2010-05-28 12:21 ` Alan Cox
2010-05-28 12:30 ` Peter Zijlstra
2010-05-28 13:02 ` Alan Cox
2010-05-28 13:20 ` Peter Zijlstra
2010-05-28 14:59 ` Peter Zijlstra
2010-05-28 15:14 ` Alan Stern
2010-05-28 15:53 ` Florian Mickler
2010-05-28 21:44 ` Rafael J. Wysocki
2010-05-29 7:53 ` Peter Zijlstra
2010-05-29 20:12 ` Rafael J. Wysocki
2010-05-28 12:31 ` Matthew Garrett
2010-05-28 13:54 ` Alan Cox
2010-05-28 14:02 ` Matthew Garrett
2010-05-28 15:24 ` Alan Cox
2010-05-28 14:35 ` Alan Stern
2010-05-28 15:18 ` Peter Zijlstra
2010-05-28 15:30 ` Alan Stern
2010-05-29 8:39 ` Vitaly Wool
2010-05-28 14:07 ` Alan Stern
2010-05-31 1:57 ` Zygo Blaxell
2010-05-28 9:21 ` resume latency QoS support, unify suspend/resume into idle states Ingo Molnar
2010-05-28 9:59 ` Arve Hjønnevåg
2010-05-27 17:00 ` [linux-pm] [PATCH 0/8] Suspend block api (version 8) Alan Stern
2010-05-27 17:24 ` Thomas Gleixner
2010-05-27 17:31 ` Matthew Garrett
2010-05-27 17:34 ` Peter Zijlstra
2010-05-27 17:40 ` Matthew Garrett
2010-05-27 17:47 ` Peter Zijlstra
2010-05-27 19:22 ` Alan Stern
2010-05-27 22:41 ` Rafael J. Wysocki
2010-05-27 23:15 ` Alan Cox
2010-05-27 23:42 ` Kevin Hilman
2010-05-28 0:05 ` Rafael J. Wysocki
2010-05-28 0:49 ` Mike Chan
2010-05-28 7:47 ` Peter Zijlstra
2010-05-28 13:22 ` Matthew Garrett
2010-05-27 18:05 ` Alan Cox
2010-05-27 18:15 ` Matthew Garrett
2010-05-27 18:44 ` Kevin Hilman
2010-05-27 22:45 ` Rafael J. Wysocki
2010-05-27 18:14 ` Thomas Gleixner
2010-05-27 17:44 ` Alan Stern
2010-05-27 17:52 ` Peter Zijlstra
2010-05-27 17:57 ` Matthew Garrett
2010-05-27 18:02 ` Peter Zijlstra
2010-05-27 18:14 ` Matthew Garrett
2010-05-27 18:18 ` Peter Zijlstra
2010-05-27 18:29 ` Matthew Garrett
2010-05-27 18:55 ` Thomas Gleixner
2010-05-27 19:03 ` Alan Cox
2010-05-27 18:58 ` Thomas Gleixner
2010-05-27 19:13 ` Matthew Garrett
2010-05-27 19:50 ` Alan Cox
2010-05-27 20:02 ` Matthew Garrett
2010-05-27 23:10 ` Rafael J. Wysocki
2010-05-27 23:50 ` Alan Cox
2010-05-28 0:06 ` Dmitry Torokhov
2010-05-28 0:39 ` Rafael J. Wysocki
2010-05-28 0:45 ` Arve Hjønnevåg
2010-05-28 7:43 ` Peter Zijlstra
2010-05-28 22:11 ` Rafael J. Wysocki
2010-05-29 9:04 ` Florian Mickler
2010-05-29 10:42 ` Peter Zijlstra
2010-05-29 11:18 ` Florian Mickler
2010-05-29 14:10 ` Alan Stern
2010-05-29 14:30 ` Brian Swetland
2010-05-29 15:03 ` Alan Stern
2010-05-29 15:11 ` Brian Swetland
2010-05-29 15:09 ` Alan Cox
2010-05-29 20:41 ` Rafael J. Wysocki
2010-05-29 22:13 ` Arve Hjønnevåg
2010-05-29 23:00 ` Nigel Cunningham
2010-05-30 0:45 ` Alan Stern
2010-05-30 15:43 ` Alan Stern
2010-05-31 9:43 ` Arve Hjønnevåg
2010-05-31 15:13 ` Alan Stern
2010-05-31 21:38 ` Rafael J. Wysocki
2010-05-31 23:26 ` mark gross
2010-06-01 7:07 ` Florian Mickler
2010-06-01 8:46 ` [PATCH] pm_qos: remove unnecessary list-traversal florian
2010-06-01 8:52 ` florian
2010-06-01 10:43 ` Thomas Gleixner
2010-06-02 6:14 ` Florian Mickler
2010-06-01 14:08 ` mark gross
2010-06-01 14:05 ` [linux-pm] [PATCH 0/8] Suspend block api (version 8) mark gross
2010-06-01 20:00 ` Florian Mickler
2010-06-01 20:12 ` Florian Mickler
2010-06-02 3:50 ` Arve Hjønnevåg
2010-06-02 13:39 ` mark gross
2010-06-02 21:58 ` Arve Hjønnevåg
2010-06-03 3:18 ` mark gross
2010-06-03 4:54 ` Brian Swetland
2010-06-03 5:40 ` mark gross
2010-06-03 7:10 ` Arve Hjønnevåg
2010-06-03 13:24 ` mark gross
2010-06-03 14:30 ` Florian Mickler
2010-06-05 3:22 ` mark gross
2010-06-03 13:55 ` Florian Mickler
2010-06-03 14:36 ` James Bottomley
2010-06-03 15:17 ` Florian Mickler
2010-06-03 15:29 ` James Bottomley
2010-06-03 16:00 ` Florian Mickler
2010-06-03 21:05 ` Rafael J. Wysocki
2010-06-04 4:07 ` Arve Hjønnevåg
2010-06-04 13:09 ` Florian Mickler
2010-06-04 14:23 ` James Bottomley
2010-06-05 4:06 ` PM_QOS re-design for hot path use of limited dynamic range requests was- " mark gross
2010-06-05 19:07 ` Rafael J. Wysocki
2010-06-06 21:43 ` mark gross
2010-06-03 8:04 ` Peter Zijlstra
2010-06-03 13:25 ` mark gross
2010-06-02 22:03 ` Rafael J. Wysocki
2010-06-03 3:10 ` mark gross
2010-06-03 21:02 ` Rafael J. Wysocki
2010-06-02 2:51 ` mark gross
2010-06-01 13:46 ` mark gross
2010-05-29 16:19 ` James Bottomley
2010-05-28 11:04 ` Alan Cox
2010-05-28 11:05 ` Arve Hjønnevåg
2010-05-28 7:29 ` Peter Zijlstra
2010-05-28 22:18 ` Rafael J. Wysocki
2010-05-29 7:59 ` Peter Zijlstra
2010-05-27 18:20 ` Alan Cox
2010-05-27 19:04 ` Alan Stern
2010-05-27 19:27 ` Alan Cox
2010-05-27 19:32 ` Alan Stern
2010-05-27 23:24 ` Rafael J. Wysocki
2010-05-28 0:59 ` Alan Stern
2010-05-28 7:19 ` Peter Zijlstra
2010-05-28 14:49 ` Alan Stern
2010-05-27 18:05 ` Thomas Gleixner
2010-05-27 18:17 ` Matthew Garrett
2010-05-28 8:44 ` Florian Mickler
2010-05-28 9:18 ` Arve Hjønnevåg
2010-05-28 10:25 ` Florian Mickler
2010-05-28 11:35 ` Arve Hjønnevåg
2010-05-28 12:09 ` Florian Mickler
2010-05-28 22:24 ` Rafael J. Wysocki
2010-05-29 1:11 ` Arve Hjønnevåg
2010-05-29 20:27 ` Rafael J. Wysocki
2010-05-29 21:55 ` Arve Hjønnevåg
2010-05-30 20:02 ` Rafael J. Wysocki
2010-05-31 9:16 ` Arve Hjønnevåg
2010-05-31 21:47 ` Rafael J. Wysocki
2010-06-01 4:57 ` Arve Hjønnevåg
2010-06-01 6:57 ` Igor Stoppa
2010-06-01 12:17 ` Thomas Gleixner
2010-06-02 3:23 ` Arve Hjønnevåg
2010-06-02 8:29 ` Thomas Gleixner
2010-06-02 8:54 ` Arve Hjønnevåg
2010-06-02 9:07 ` Thomas Gleixner
2010-06-02 9:32 ` Arve Hjønnevåg
2010-06-02 9:39 ` Peter Zijlstra
2010-06-02 10:00 ` Arve Hjønnevåg
2010-06-02 10:21 ` Peter Zijlstra
2010-06-02 20:13 ` Florian Mickler
2010-06-03 7:40 ` Peter Zijlstra
2010-06-03 14:12 ` Florian Mickler
2010-06-03 15:28 ` Peter Zijlstra
2010-06-04 15:43 ` Florian Mickler
2010-06-05 17:30 ` Felipe Contreras
2010-06-05 19:56 ` Florian Mickler
2010-06-05 20:06 ` Felipe Contreras
2010-06-05 20:50 ` Florian Mickler
2010-06-09 8:13 ` Felipe Contreras
2010-06-05 17:44 ` Felipe Contreras
2010-06-05 20:01 ` Florian Mickler
2010-06-05 20:26 ` Felipe Contreras
2010-06-05 21:11 ` Florian Mickler
2010-06-05 21:24 ` Thomas Gleixner
2010-06-05 21:34 ` Florian Mickler
2010-06-05 21:40 ` Thomas Gleixner
2010-06-02 9:10 ` Peter Zijlstra
2010-06-02 11:58 ` Alan Cox
2010-05-27 17:21 ` Florian Mickler
2010-05-27 17:25 ` Peter Zijlstra
2010-05-27 17:42 ` Florian Mickler
2010-05-27 17:52 ` Peter Zijlstra
2010-05-27 17:54 ` Matthew Garrett
2010-05-27 18:02 ` Peter Zijlstra
2010-05-27 19:19 ` Alan Stern
2010-05-28 5:15 ` Peter Zijlstra
2010-05-28 6:16 ` Arve Hjønnevåg
2010-05-27 7:42 ` Vitaly Wool
2010-05-27 8:05 ` Arve Hjønnevåg
2010-05-28 2:09 ` Ben Gamari
2010-05-28 7:03 ` Florian Mickler
2010-05-26 10:06 ` Arve Hjønnevåg
2010-05-26 10:09 ` Peter Zijlstra
2010-05-26 10:25 ` Arve Hjønnevåg
2010-05-26 10:32 ` Peter Zijlstra
2010-05-26 10:40 ` Brian Swetland
2010-05-26 10:40 ` Arve Hjønnevåg
2010-05-26 10:49 ` Peter Zijlstra
2010-05-26 10:53 ` Arve Hjønnevåg
2010-05-26 11:12 ` Peter Zijlstra
2010-05-26 12:35 ` Alan Cox
2010-05-26 12:53 ` Peter Zijlstra
2010-05-26 20:18 ` Zygo Blaxell
2010-05-26 22:52 ` Arve Hjønnevåg
2010-05-26 11:23 ` [linux-pm] " Vitaly Wool
2010-05-26 8:45 ` Peter Zijlstra
2010-05-26 9:40 ` Florian Mickler
2010-05-26 9:54 ` Peter Zijlstra
2010-05-26 11:35 ` Florian Mickler
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=20100525232625.GB5331@core.coreip.homeip.net \
--to=dmitry.torokhov@gmail.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=arve@android.com \
--cc=cornelia.huck@de.ibm.com \
--cc=fengguang.wu@intel.com \
--cc=jbarnes@virtuousgeek.org \
--cc=len.brown@intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=maximlevitsky@gmail.com \
--cc=nigel@tuxonice.net \
--cc=pavel@ucw.cz \
--cc=rdunlap@xenotime.net \
--cc=rjw@sisk.pl \
--cc=stern@rowland.harvard.edu \
--cc=tj@kernel.org \
--cc=tom.leiming@gmail.com \
/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).