From: Neil Brown <neilb@suse.de> To: Thomas Gleixner <tglx@linutronix.de> Cc: "Rafael J. Wysocki" <rjw@sisk.pl>, "Alan Stern" <stern@rowland.harvard.edu>, "Felipe Balbi" <felipe.balbi@nokia.com>, "Arve Hjønnevåg" <arve@android.com>, "Peter Zijlstra" <peterz@infradead.org>, "Paul@smtp1.linux-foundation.org" <Paul@smtp1.linux-foundation.org>, LKML <linux-kernel@vger.kernel.org>, "Florian Mickler" <florian@mickler.org>, "Linux OMAP Mailing List" <linux-omap@vger.kernel.org>, "Linux PM" <linux-pm@lists.linux-foundation.org>, "Alan Cox" <alan@lxorguk.ukuu.org.uk>, "James Bottomley" <James.Bottomley@suse.de> Subject: [PATCH] - race-free suspend. Was: Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8) Date: Wed, 2 Jun 2010 15:32:35 +1000 [thread overview] Message-ID: <20100602153235.340a7852@notabene.brown> (raw) In-Reply-To: <alpine.LFD.2.00.1006011243350.2933@localhost.localdomain> On Tue, 1 Jun 2010 12:50:01 +0200 (CEST) Thomas Gleixner <tglx@linutronix.de> wrote: > On Tue, 1 Jun 2010, Neil Brown wrote: > > > > I think you have acknowledged that there is a race with suspend - thanks. > > Next step was "can it be closed". > > You seem to suggest that it can, but you describe it as a "work around" > > rather than a "bug fix"... > > > > Do you agree that the race is a "bug", and therefore it is appropriate to > > "fix" it assuming an acceptable fix can be found (which I think it can)? > > If we can fix it, yes we definitely should do and not work around it. > > Thanks, > > tglx OK. Here is my suggestion. While I think this patch would actually work, and hope the ugly aspects are reasonably balanced by the simplicity, I present it primarily as a base for improvement. The important part is to present how drivers and user-space can co-operate to avoid losing wake-events. The details of what happens in the kernel are certainly up for discussion (as is everything else really of course). The user-space suspend daemon avoids losing wake-events by using fcntl(F_OWNER) to ensure it gets a signal whenever any important wake-event is ready to be read by user-space. This may involve: - the one daemon processing all wake events - Both the suspend daemon and the main event handling daemon opening any given device that delivers wake events (this should work with input events ... unless grabbing is needed) - The event handling daemon giving the suspend-daemon's pid as F_OWNER, and using poll/select to get the events itself. When 'mem' is written to /sys/power/state, suspend_prepare waits in an interruptible wait until any wake-event that might have been initiated before the suspend was request, has had a chance to be queued for user-space and trigger kill_fasync. Currently this wait is a configurable time after the last wake-event was initiated. This is hackish, but simple and probably adequate. If more precise timing is needed and achievable, that can be added later. It would be an entirely internal change and would not affect the API further. Some of the code developed for suspend-blockers might be a starting point for this. Drivers should call pm_suspend_delay() whenever a wake-event occurs. This simply records the time so that the suspend process knows if there is in fact any need to wait at all. The delay to wait after the last pm_suspend_delay() is limited to 10 seconds and can be set by kernel parameter suspend_block_delay=number-of-milliseconds It defaults to 2 jiffies (which is possibly too short). - Would this fix the "bug"?? - and address the issues that suspend-blockers was created to address? - or are the requirements on user-space too onerous? Thanks, NeilBrown Signed-off-by: NeilBrown <neilb@suse.de> diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 5e781d8..ccbadd0 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -142,11 +142,13 @@ extern void arch_suspend_disable_irqs(void); extern void arch_suspend_enable_irqs(void); extern int pm_suspend(suspend_state_t state); +extern void pm_suspend_delay(void); #else /* !CONFIG_SUSPEND */ #define suspend_valid_only_mem NULL static inline void suspend_set_ops(struct platform_suspend_ops *ops) {} static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; } +static inlint void pm_suspend_delay(void) {} #endif /* !CONFIG_SUSPEND */ /* struct pbe is used for creating lists of pages that should be restored diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 56e7dbb..07897b9 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -46,6 +46,69 @@ bool valid_state(suspend_state_t state) return suspend_ops && suspend_ops->valid && suspend_ops->valid(state); } +/* + * Devices that process potential wake-up events report each + * wake-up events by pm_suspend_delay(); + * This ensures that suspend won't happen for a "little while" + * so the event has a chance to get to user-space. + * pm_suspend calls wait_for_blockers to wait the required + * "little while" and to check for signals. + * A process that requests a suspend should arrange (via + * fcntl(F_GETOWN)) to get signalled whenever a wake-up event + * is queued for user-space. This will ensure that if a suspend + * is requested at much the same time as a wakeup event arrives, either + * the suspend will be interrupted, or it will complete quickly. + * + * The "little while" is a heuristic to avoid having to explicitly + * track every event through the kernel with associated locking and unlocking. + * It should be more than the longest time it can take between an interrupt + * occurring and the corresponding event being queued to userspace + * (and the accompanying kill_fasync call). + * This duration is configurable at boot time, has a lower limit of 2 + * jiffies and an upper limit of 10 seconds. It defaults to the minimum. + */ +static unsigned long little_while_jiffies = 2; +static int __init setup_suspend_block_delay(char *str) +{ + unsigned long msec; + if (sscanf(str, "%lu", &msec) != 1) + return 1; + if (msec > 10000) + msec = 10000; + little_while_jiffies = msecs_to_jiffies(msec); + if (little_while_jiffies < 2) + little_while_jiffies = 2; + return 1; +} +__setup("suspend_block_delay=", setup_suspend_block_delay); + +static unsigned long next_little_while; +void pm_suspend_delay() +{ + unsigned long then = jiffies + little_while_jiffies; + + if (then != next_little_while) + next_little_while = then; +} +EXPORT_SYMBOL_GPL(pm_suspend_delay); + +static int wait_for_blockers(void) +{ + unsigned long timeout; + + if (time_after(jiffies, next_little_while)) + return 0; + timeout = next_little_while - jiffies; + if (timeout > msecs_to_jiffies(10000)) + /* jiffy wrap */ + return 0; + + while (timeout && !signal_pending(current)) + timeout = schedule_timeout_interruptible(timeout); + if (signal_pending(current)) + return -EINTR; + return 0; +} /** * suspend_valid_only_mem - generic memory-only valid callback * @@ -89,6 +152,10 @@ static int suspend_prepare(void) if (error) goto Finish; + error = wait_for_blockers(); + if (error) + goto Finish; + error = usermodehelper_disable(); if (error) goto Finish;
next prev parent reply other threads:[~2010-06-02 5:32 UTC|newest]
Thread overview: 511+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1274482015-30899-1-git-send-email-arve@android.com>
[not found] ` <201005240246.55043.rjw@sisk.pl>
2010-05-24 4:32 ` [PATCH 0/8] Suspend block api (version 8) 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` Neil Brown [this message]
2010-06-02 7:05 ` [PATCH] - race-free suspend. Was: " 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 ` [linux-pm] " Peter Zijlstra
2010-05-27 16:07 ` Matthew Garrett
2010-05-27 16:41 ` Alan Cox
2010-05-27 16:52 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " Arve Hjønnevåg
2010-05-28 11:16 ` Alan Cox
2010-05-28 11:20 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " Matthew Garrett
2010-05-27 23:10 ` Rafael J. Wysocki
2010-05-27 23:50 ` [linux-pm] " 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 11:04 ` Alan Cox
2010-05-28 11:05 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " Arve Hjønnevåg
2010-05-29 20:27 ` Rafael J. Wysocki
2010-05-29 21:55 ` [linux-pm] " 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 ` [linux-pm] " 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 ` [linux-pm] " 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
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=20100602153235.340a7852@notabene.brown \
--to=neilb@suse.de \
--cc=James.Bottomley@suse.de \
--cc=Paul@smtp1.linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arve@android.com \
--cc=felipe.balbi@nokia.com \
--cc=florian@mickler.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=peterz@infradead.org \
--cc=rjw@sisk.pl \
--cc=stern@rowland.harvard.edu \
--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).