From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Kevin Hilman <khilman@deeprootsystems.com>
Cc: "Mark Brown" <broonie@opensource.wolfsonmicro.com>,
"Brian Swetland" <swetland@google.com>,
"Arve Hjønnevåg" <arve@android.com>,
linux-pm@lists.linux-foundation.org,
linux-kernel@vger.kernel.org,
"Alan Stern" <stern@rowland.harvard.edu>,
"Tejun Heo" <tj@kernel.org>, "Oleg Nesterov" <oleg@redhat.com>,
"Paul Walmsley" <paul@pwsan.com>,
magnus.damm@gmail.com, "mark gross" <mgross@linux.intel.com>,
"Arjan van de Ven" <arjan@infradead.org>,
"Geoff Smith" <geoffx.smith@intel.com>
Subject: Re: [PATCH 0/8] Suspend block api (version 6)
Date: Wed, 5 May 2010 01:42:41 +0200 [thread overview]
Message-ID: <201005050142.41537.rjw@sisk.pl> (raw)
In-Reply-To: <87wrvjdztr.fsf@deeprootsystems.com>
On Wednesday 05 May 2010, Kevin Hilman wrote:
> "Rafael J. Wysocki" <rjw@sisk.pl> writes:
>
> > On Tuesday 04 May 2010, Mark Brown wrote:
> >> On Tue, May 04, 2010 at 11:06:39AM -0700, Kevin Hilman wrote:
> >>
> >> > With opportunistic suspend, all of this flexibility is gone, and the
> >> > device/subsystem is told to go into the lowest power, highest latency
> >> > state, period.
> >>
> >> Well, half the problem I have is that unfortunately it's not a case of
> >> doing that period. The prime example I'm familiar with is that for
> >> understandable reasons users become irate when you power down the audio
> >> CODEC while they're in the middle of a call so if opportunistic PM is in
> >> use then the audio subsystem needs some additional help interpreting a
> >> suspend request so that it can figure out how to handle it. Similar
> >> issues apply to PMICs, though less pressingly for various reasons.
> >>
> >> Just to be clear, I do understand and mostly agree with the idea that
> >> opportunistic suspend presents a reasonable workaround for our current
> >> inability to deliver good power savings with runtime PM methods on many
> >> important platforms but I do think that if we're going to make this
> >> standard Linux PM functionality then we need to be clearer about how
> >> everything is intended to hang together.
> >
> > At the moment the rule of thumb is: if you don't need the opportunistic
> > suspend, don't use it. It is not going to be enabled by default on anything
> > other than Android right now.
>
> Sure, but there are driver authors and subsystem maintainers who care
> about optimal PM in "normal" Linux *and* in Android.
>
> As a PM maintainer for an embedded platform (OMAP) used in both, I
> certainly care about both, so "disable it if you don't like it" is not
> really an option.
>
> IMO, driver/subsystem authors should not have to care if the userspace
> is Android or not. We should be working towards a world where Android
> is not a special case.
I agree, but "working on towards a world where ..." need not mean "be there
from day one" IMO. Also, I guess you'll agree that using the same _binary_
kernel with Android and non-Android user spaces doesn't necessarily make sense
(regardless of the fact that Android kernels have hardware-specific board files
included), so probably you'll still disable opportunistic suspend building the
kernel for non-Android systems (at least for the time being).
It looks like you're thinking the opportunistic suspend somehow is (or can be
used as) a replacement for runtime PM, but this is not the case. The reason
why it's not the case is that runtime PM works with the assumption that user
space is not frozen and it works on individual devices.
OTOH, generally, there is a limit on the amount of energy savings you can
achieve with runtime PM alone and something like the opportunistic suspend is
necessary to go beyond that limit.
Now, I can easily imagine using suspend blockers and runtime PM in the same
driver with the general rule that you'll probably want to call suspend_unblock()
whenever the device is suspended with the help of the runtime PM framework.
That really depends on the device and the driver in question, though.
Rafael
next prev parent reply other threads:[~2010-05-04 23:41 UTC|newest]
Thread overview: 324+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-30 22:36 [PATCH 0/8] Suspend block api (version 6) Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 1/8] PM: Add suspend block api Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 5/8] PM: suspend_block: Add suspend_blocker stats Arve Hjønnevåg
2010-04-30 22:36 ` [PATCH 6/8] PM: Add suspend blocking work Arve Hjønnevåg
2010-04-30 22:37 ` [PATCH 7/8] Input: Block suspend while event queue is not empty Arve Hjønnevåg
2010-04-30 22:37 ` [PATCH 8/8] power_supply: Block suspend while power supply change notifications are pending Arve Hjønnevåg
2010-05-01 6:14 ` [PATCH 6/8] PM: Add suspend blocking work Tejun Heo
2010-05-02 7:05 ` Pavel Machek
2010-05-04 11:16 ` [PATCH 4/8] PM: suspend_block: Add debugfs file Andi Kleen
2010-05-04 21:06 ` Arve Hjønnevåg
2010-05-02 6:57 ` [PATCH 3/8] PM: suspend_block: Abort task freezing if a suspend_blocker is active Pavel Machek
2010-05-02 7:04 ` [PATCH 2/8] PM: suspend_block: Add driver to access suspend blockers from user-space Pavel Machek
2010-05-02 21:23 ` Rafael J. Wysocki
2010-05-02 21:56 ` Alan Stern
2010-05-03 15:03 ` Rafael J. Wysocki
2010-05-03 21:26 ` Arve Hjønnevåg
2010-05-03 21:49 ` Rafael J. Wysocki
2010-05-03 22:01 ` Arve Hjønnevåg
2010-05-04 20:02 ` Rafael J. Wysocki
2010-05-04 4:16 ` Pavel Machek
2010-05-02 6:56 ` [PATCH 1/8] PM: Add suspend block api Pavel Machek
2010-05-02 20:10 ` Rafael J. Wysocki
2010-05-02 20:52 ` Pavel Machek
2010-05-02 21:29 ` Rafael J. Wysocki
2010-05-03 19:01 ` Pavel Machek
2010-05-03 21:38 ` Rafael J. Wysocki
2010-05-03 22:11 ` Alan Stern
2010-05-03 22:24 ` Arve Hjønnevåg
2010-05-02 7:01 ` Pavel Machek
2010-05-04 5:12 ` [linux-pm] " mark gross
2010-05-04 13:59 ` Alan Stern
2010-05-04 16:03 ` mark gross
2010-05-04 17:16 ` Alan Stern
2010-05-05 1:50 ` mark gross
2010-05-05 13:31 ` Matthew Garrett
2010-05-05 20:09 ` mark gross
2010-05-05 20:21 ` Matthew Garrett
2010-05-05 15:44 ` Alan Stern
2010-05-05 20:28 ` mark gross
2010-05-05 21:12 ` Alan Stern
2010-05-05 21:37 ` Brian Swetland
2010-05-05 23:47 ` Tony Lindgren
2010-05-05 23:56 ` Brian Swetland
2010-05-06 0:05 ` Tony Lindgren
2010-05-06 4:16 ` Arve Hjønnevåg
2010-05-06 17:04 ` Tony Lindgren
2010-05-07 0:10 ` Arve Hjønnevåg
2010-05-07 15:54 ` Tony Lindgren
2010-05-28 6:43 ` Pavel Machek
2010-05-28 7:01 ` Arve Hjønnevåg
2010-05-06 13:40 ` Matthew Garrett
2010-05-06 17:01 ` Tony Lindgren
2010-05-06 17:09 ` Matthew Garrett
2010-05-06 17:14 ` Tony Lindgren
2010-05-06 17:22 ` Matthew Garrett
2010-05-06 17:38 ` Tony Lindgren
2010-05-06 17:43 ` Matthew Garrett
2010-05-06 18:33 ` Tony Lindgren
2010-05-06 18:44 ` Matthew Garrett
2010-05-07 2:05 ` Tony Lindgren
2010-05-07 17:12 ` Matthew Garrett
2010-05-07 17:35 ` Tony Lindgren
2010-05-07 17:50 ` Matthew Garrett
2010-05-07 18:01 ` Tony Lindgren
2010-05-07 18:28 ` Matthew Garrett
2010-05-07 18:43 ` Tony Lindgren
2010-05-07 18:46 ` Matthew Garrett
2010-05-07 19:06 ` Daniel Walker
2010-05-07 19:28 ` Tony Lindgren
2010-05-07 19:33 ` Matthew Garrett
2010-05-07 19:55 ` Tony Lindgren
2010-05-07 20:28 ` Matthew Garrett
2010-05-07 20:53 ` Tony Lindgren
2010-05-07 21:03 ` Matthew Garrett
2010-05-07 21:25 ` Tony Lindgren
2010-05-07 21:32 ` Arve Hjønnevåg
2010-05-07 21:39 ` Matthew Garrett
2010-05-07 21:42 ` Tony Lindgren
2010-05-07 21:48 ` Matthew Garrett
2010-05-07 22:00 ` Tony Lindgren
2010-05-07 22:28 ` Matthew Garrett
2010-05-07 21:30 ` Daniel Walker
2010-05-07 21:35 ` Arve Hjønnevåg
2010-05-07 21:43 ` Daniel Walker
2010-05-07 21:38 ` Matthew Garrett
2010-05-06 18:47 ` Alan Stern
2010-05-07 2:20 ` Tony Lindgren
2010-05-28 13:29 ` Pavel Machek
2010-05-28 13:42 ` Brian Swetland
2010-05-06 17:35 ` Daniel Walker
2010-05-06 18:36 ` Tony Lindgren
2010-05-06 19:11 ` Daniel Walker
2010-05-07 2:00 ` Tony Lindgren
2010-05-07 17:20 ` Daniel Walker
2010-05-07 17:36 ` Matthew Garrett
2010-05-07 17:40 ` Daniel Walker
2010-05-07 17:51 ` Matthew Garrett
2010-05-07 18:00 ` Daniel Walker
2010-05-07 18:17 ` Tony Lindgren
2010-05-07 17:50 ` Tony Lindgren
2010-05-07 3:45 ` mgross
2010-05-07 3:45 ` mgross
2010-05-07 4:10 ` Arve Hjønnevåg
2010-05-04 20:40 ` Arve Hjønnevåg
2010-05-03 16:40 ` [PATCH 0/8] Suspend block api (version 6) Kevin Hilman
2010-05-03 17:12 ` Alan Stern
2010-05-03 18:17 ` Kevin Hilman
2010-05-03 18:07 ` Mark Brown
2010-05-03 21:18 ` Rafael J. Wysocki
2010-05-03 23:37 ` Kevin Hilman
2010-05-04 0:09 ` Arve Hjønnevåg
2010-05-04 0:43 ` Brian Swetland
2010-05-04 13:59 ` Mark Brown
2010-05-04 18:06 ` Kevin Hilman
2010-05-04 19:06 ` Mark Brown
2010-05-04 20:37 ` Rafael J. Wysocki
2010-05-04 23:14 ` Kevin Hilman
2010-05-04 23:42 ` Rafael J. Wysocki [this message]
2010-05-04 20:23 ` Rafael J. Wysocki
2010-05-04 20:44 ` Rafael J. Wysocki
2010-05-04 23:56 ` Mark Brown
2010-05-05 0:22 ` Rafael J. Wysocki
2010-05-05 1:11 ` Brian Swetland
2010-05-05 11:06 ` Mark Brown
2010-05-05 12:00 ` Brian Swetland
2010-05-05 13:56 ` Mark Brown
2010-05-05 17:33 ` Matthew Garrett
2010-05-05 18:36 ` Alan Stern
2010-05-05 18:52 ` Matthew Garrett
2010-05-05 19:13 ` Alan Stern
2010-05-05 19:22 ` Matthew Garrett
2010-05-05 19:52 ` Mark Brown
2010-05-05 19:55 ` tytso
2010-05-05 20:26 ` Mark Brown
2010-05-05 20:44 ` Rafael J. Wysocki
2010-05-05 21:57 ` Mark Brown
2010-05-05 22:03 ` Brian Swetland
2010-05-05 22:05 ` Rafael J. Wysocki
2010-05-05 23:09 ` Mark Brown
2010-05-05 23:33 ` Rafael J. Wysocki
2010-05-06 0:21 ` Mark Brown
2010-05-06 0:51 ` Rafael J. Wysocki
2010-05-05 20:02 ` Matthew Garrett
2010-05-05 20:09 ` Mark Brown
2010-05-05 19:39 ` Mark Brown
2010-05-05 20:56 ` Brian Swetland
2010-05-05 23:40 ` Mark Brown
2010-05-06 4:25 ` Arve Hjønnevåg
2010-05-07 10:04 ` Mark Brown
2010-05-07 10:57 ` Arve Hjønnevåg
2010-05-07 11:21 ` Mark Brown
2010-05-07 11:29 ` Theodore Tso
2010-05-07 12:25 ` Mark Brown
2010-05-07 12:37 ` Brian Swetland
2010-05-07 13:30 ` Mark Brown
2010-05-11 18:47 ` Mark Brown
2010-05-07 11:41 ` Arve Hjønnevåg
2010-05-07 14:00 ` Mark Brown
2010-05-05 19:07 ` Mark Brown
2010-05-05 19:20 ` Alan Stern
2010-05-05 19:28 ` Matthew Garrett
2010-05-05 20:04 ` Alan Stern
2010-05-05 20:15 ` Mark Brown
2010-05-05 20:28 ` Rafael J. Wysocki
2010-05-05 23:03 ` Kevin Hilman
2010-05-05 23:16 ` Rafael J. Wysocki
2010-05-05 23:42 ` Brian Swetland
2010-05-06 14:08 ` Alan Stern
2010-05-06 19:26 ` Rafael J. Wysocki
2010-05-05 18:39 ` Mark Brown
2010-05-05 15:35 ` Alan Stern
2010-05-05 16:27 ` Mark Brown
2010-05-04 18:04 ` Kevin Hilman
2010-05-04 0:43 ` Matthew Garrett
2010-05-04 13:51 ` Alan Stern
2010-05-04 14:53 ` Mark Brown
2010-05-04 15:13 ` Kevin Hilman
2010-05-04 15:27 ` Matthew Garrett
2010-05-06 1:40 ` Magnus Damm
2010-05-04 15:13 ` Kevin Hilman
2010-05-04 15:28 ` Matthew Garrett
2010-05-03 21:50 ` Matthew Garrett
[not found] ` <alpine.DEB.2.00.1005141408260.3348@utopia.booyaka.com>
[not found] ` <20100514203202.GA12409@srcf.ucam.org>
[not found] ` <87aas2azc5.fsf@deeprootsystems.com>
[not found] ` <20100514231510.GG16989@thunk.org>
[not found] ` <87r5laa4oc.fsf@deeprootsystems.com>
[not found] ` <AANLkTilL90pYVlquvMDAEPHj_AraEi9Qzk-0tTjw9Bkx@mail.gmail.com>
2010-05-17 20:07 ` [linux-pm] " Mike Chan
2010-05-17 20:17 ` Vitaly Wool
2010-05-17 21:04 ` Mike Chan
2010-05-17 22:55 ` Kevin Hilman
2010-05-17 23:04 ` Brian Swetland
2010-05-24 18:57 ` Pavel Machek
2010-05-24 19:08 ` Matthew Garrett
2010-05-25 1:16 ` Arve Hjønnevåg
2010-05-26 17:32 ` Pavel Machek
2010-05-05 20:35 ` mark gross
2010-05-10 18:06 ` Kevin Hilman
2010-05-10 20:25 ` Rafael J. Wysocki
2010-05-11 16:12 ` Tony Lindgren
2010-05-11 16:14 ` Matthew Garrett
2010-05-11 16:36 ` Tony Lindgren
2010-05-11 16:45 ` Matthew Garrett
2010-05-11 16:58 ` Tony Lindgren
2010-05-11 17:03 ` Matthew Garrett
2010-05-11 17:24 ` Tony Lindgren
2010-05-11 17:30 ` Matthew Garrett
2010-05-11 17:48 ` Tony Lindgren
2010-05-11 18:01 ` Matthew Garrett
2010-05-11 18:19 ` Rafael J. Wysocki
2010-05-12 1:11 ` Arve Hjønnevåg
2010-05-12 11:22 ` Mark Brown
2010-05-13 3:35 ` [linux-pm] " Paul Walmsley
2010-05-13 12:17 ` Matthew Garrett
2010-05-13 17:33 ` Daniel Walker
2010-05-13 18:17 ` Brian Swetland
2010-05-13 18:25 ` Daniel Walker
2010-05-13 18:36 ` Matthew Garrett
2010-05-13 18:59 ` Daniel Walker
2010-05-13 19:11 ` Matthew Garrett
2010-05-13 19:36 ` Daniel Walker
2010-05-13 19:48 ` Matthew Garrett
2010-05-13 21:11 ` Rafael J. Wysocki
2010-05-13 21:16 ` Daniel Walker
2010-05-13 21:27 ` Rafael J. Wysocki
2010-05-13 21:33 ` Daniel Walker
2010-05-13 21:36 ` Tony Lindgren
2010-05-13 21:54 ` Rafael J. Wysocki
2010-05-13 21:46 ` Greg KH
2010-05-13 22:27 ` Mark Brown
2010-05-13 22:45 ` Greg KH
2010-05-14 0:03 ` Mark Brown
2010-05-13 22:46 ` Rafael J. Wysocki
2010-05-13 23:36 ` Mark Brown
2010-05-13 23:48 ` Brian Swetland
2010-05-14 0:29 ` Mark Brown
2010-05-13 22:33 ` Woodruff, Richard
2010-05-13 22:46 ` Greg KH
2010-05-13 23:06 ` Arve Hjønnevåg
2010-05-13 23:28 ` Brian Swetland
2010-05-14 16:47 ` Daniel Walker
2010-05-13 14:16 ` Alan Stern
2010-05-13 19:17 ` Tony Lindgren
2010-05-13 19:25 ` Matthew Garrett
2010-05-13 19:42 ` Tony Lindgren
2010-05-13 19:53 ` Matthew Garrett
2010-05-13 20:00 ` Tony Lindgren
2010-05-13 20:08 ` Matthew Garrett
2010-05-13 20:23 ` Tony Lindgren
2010-05-13 20:34 ` Matthew Garrett
2010-05-13 21:10 ` Tony Lindgren
2010-05-13 21:21 ` Matthew Garrett
2010-05-13 21:34 ` Tony Lindgren
2010-05-15 19:54 ` Matthew Garrett
2010-05-13 21:21 ` Rafael J. Wysocki
2010-05-13 21:25 ` Tony Lindgren
2010-05-13 21:56 ` Rafael J. Wysocki
2010-05-14 20:41 ` Kevin Hilman
2010-05-14 21:25 ` Rafael J. Wysocki
2010-05-14 21:40 ` Kevin Hilman
2010-05-14 21:50 ` Rafael J. Wysocki
2010-05-14 22:45 ` Kevin Hilman
2010-05-14 22:59 ` Brian Swetland
2010-05-15 2:58 ` Alan Stern
2010-05-15 3:40 ` Brian Swetland
2010-05-15 21:19 ` Alan Stern
2010-05-17 15:40 ` Kevin Hilman
2010-05-17 17:04 ` James Bottomley
2010-05-17 17:47 ` Felipe Balbi
2010-05-17 17:58 ` Matthew Garrett
2010-05-17 18:16 ` Felipe Balbi
2010-05-17 17:59 ` James Bottomley
2010-05-17 18:12 ` Felipe Balbi
2010-05-17 18:26 ` Brian Swetland
2010-05-17 18:39 ` Felipe Balbi
2010-05-17 18:45 ` Brian Swetland
2010-05-17 20:22 ` Rafael J. Wysocki
2010-05-17 18:45 ` Mark Brown
2010-05-17 18:47 ` Mike Chan
2010-05-17 19:24 ` James Bottomley
2010-05-17 19:38 ` Felipe Balbi
2010-05-17 19:39 ` Felipe Balbi
2010-05-17 19:49 ` James Bottomley
2010-05-18 6:40 ` Felipe Balbi
2010-05-18 13:59 ` James Bottomley
2010-05-19 6:59 ` Felipe Balbi
2010-05-19 20:42 ` Rafael J. Wysocki
2010-05-20 4:49 ` Felipe Balbi
2010-05-20 11:27 ` Vladimir Pantelic
2010-05-20 11:29 ` Felipe Balbi
2010-05-20 17:40 ` David Brownell
2010-05-20 18:50 ` Felipe Balbi
2010-05-20 23:08 ` David Brownell
2010-05-20 5:15 ` Florian Mickler
2010-05-20 8:57 ` Felipe Balbi
2010-05-20 8:57 ` Felipe Balbi
2010-05-20 10:05 ` Florian Mickler
2010-05-20 10:15 ` Felipe Balbi
2010-05-17 18:54 ` Kevin Hilman
2010-05-17 17:57 ` Daniel Walker
2010-05-15 20:14 ` Rafael J. Wysocki
2010-05-16 19:44 ` Mark Brown
2010-05-13 22:24 ` tytso
2010-05-13 20:36 ` Daniel Walker
2010-05-14 16:06 ` Kevin Hilman
2010-05-24 21:25 ` Pavel Machek
2010-05-13 21:41 ` Alan Stern
2010-05-13 21:54 ` Tony Lindgren
2010-05-13 22:07 ` Rafael J. Wysocki
2010-05-13 22:26 ` Arve Hjønnevåg
2010-05-13 21:14 ` Rafael J. Wysocki
2010-05-13 21:31 ` Tony Lindgren
2010-05-13 21:57 ` Rafael J. Wysocki
2010-05-13 21:37 ` Alan Stern
2010-05-13 21:47 ` Tony Lindgren
2010-05-13 22:01 ` Alan Stern
2010-05-13 22:08 ` Tony Lindgren
2010-05-13 22:28 ` Rafael J. Wysocki
2010-05-15 2:35 ` Alan Stern
2010-05-15 4:04 ` Arve Hjønnevåg
2010-05-13 22:04 ` Rafael J. Wysocki
2010-05-14 3:25 ` Magnus Damm
2010-05-14 16:18 ` Kevin Hilman
2010-05-15 2:47 ` Alan Stern
2010-05-24 21:24 ` Pavel Machek
[not found] <CEE6BB42CAD6E947908279175AF8470A025A7D7DC4@EXDCVYMBSTM006.EQ1STM.local>
[not found] ` <Pine.LNX.4.44L0.1005261156130.1328-100000@iolanthe.rowland.org>
[not found] ` <CEE6BB42CAD6E947908279175AF8470A025A8206ED@EXDCVYMBSTM006.EQ1STM.local>
2010-05-27 8:04 ` 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=201005050142.41537.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=arjan@infradead.org \
--cc=arve@android.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=geoffx.smith@intel.com \
--cc=khilman@deeprootsystems.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=magnus.damm@gmail.com \
--cc=mgross@linux.intel.com \
--cc=oleg@redhat.com \
--cc=paul@pwsan.com \
--cc=stern@rowland.harvard.edu \
--cc=swetland@google.com \
--cc=tj@kernel.org \
/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).