From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: "Arve Hjønnevåg" <arve@android.com>
Cc: Matt Helsley <matthltc@us.ibm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@elte.hu>,
tytso@mit.edu, Brian Swetland <swetland@google.com>,
Neil Brown <neilb@suse.de>,
Alan Stern <stern@rowland.harvard.edu>,
Felipe Balbi <felipe.balbi@nokia.com>,
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>,
Linus Torvalds <torvalds@linux-foundation.org>,
Kevin Hilman <khilman@deeprootsystems.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Arjan van de Ven <arjan@infradead.org>
Subject: Re: suspend blockers & Android integration
Date: Sun, 6 Jun 2010 15:29:42 +0200 [thread overview]
Message-ID: <201006061529.42523.rjw@sisk.pl> (raw)
In-Reply-To: <AANLkTikXUTZE1vesD-Ccn8VhPjhBYYS0Tw_Pq9u5nnq7@mail.gmail.com>
On Sunday 06 June 2010, Arve Hjønnevåg wrote:
> 2010/6/5 Rafael J. Wysocki <rjw@sisk.pl>:
> > On Sunday 06 June 2010, Arve Hjønnevåg wrote:
> >> 2010/6/5 Rafael J. Wysocki <rjw@sisk.pl>:
> >> > On Saturday 05 June 2010, Arve Hjønnevåg wrote:
> >> >> 2010/6/4 Matt Helsley <matthltc@us.ibm.com>:
> >> >> > On Fri, Jun 04, 2010 at 05:39:17PM -0700, Arve Hjønnevåg wrote:
> >> >> >> On Fri, Jun 4, 2010 at 5:05 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> >> >> >> > On Sat, 5 Jun 2010, Rafael J. Wysocki wrote:
> >> >> >
> >> >> > <snip>
> >> >> >
> >> >> >>
> >> >> >> > With the cgroup freezer you can "suspend" them right away and
> >> >> >> > just keep the trusted background task(s) alive which allows us to
> >> >> >> > go into deeper idle states instead of letting the crapplications
> >> >> >> > run unconfined until the download finished and the suspend
> >> >> >> > blocker goes away.
> >> >> >> >
> >> >> >>
> >> >> >> Yes this would be better, but I want it in addition to suspend, not
> >> >> >> instead of it. It is also unclear if our user-space code could easily
> >> >> >> make use of it since our trusted code calls into untrusted code.
> >> >> >>
> >> >> >
> >> >> > Perhaps I'm misunderstanding, but suspend and the cgroup freezer
> >> >> > interoperate well today -- you don't have to choose one or the other.
> >> >> > If you've discovered otherwise I'd consider it a bug and would like to
> >> >> > hear more about it.
> >> >> >
> >> >>
> >> >> I'm not aware of any bug with combining both, but we cannot use
> >> >> suspend at all without suspend blockers in the kernel (since wakeup
> >> >> events may be ignored)
> >> >
> >> > The more I think of it, the more it appears to me that the problem of
> >> > lost wakeup events can actually be solved without suspend blockers.
> >> > I'll send a bunch of patches to address this issue, probably tomorrow.
> >> >
> >>
> >> I know of two ways to prevent lost wakeup events. Reset a timeout
> >> every time you receive a wakeup event or prevents suspend until you
> >> know the event has been fully processed. Does your solution fall onto
> >> one of these two categories, or do you have a third way?
> >
> > Basically, it involves two mechanisms, detection of wakeup events occuring
> > right before suspend is started
>
> This sounds like the timeout approach which I thought you did not like.
>
> > and aborting suspend if wakeup events occur
> > in the middle of it.
> >
> Aborting suspend is easy, but when do you allow suspend again?
I would recommend you to wait for the patches and then comment. :-)
> >> >> and I don't know how we can safely freeze
> >> >> cgroups without funneling all potential wakeup events through a
> >> >> process that never gets frozen.
> >> >
> >> > If your untrusted apps get called by the trusted ones, they aren't really
> >> > untrusted in the first place.
> >> >
> >> That is not a correct statement. A trusted apps can call into an
> >> untrusted app, it just has to validate the response and handle not
> >> getting a response at all. There are also different levels of trust. I
> >> may have trusted an app to provide a contact pictures, but not trusted
> >> it to block suspend. When the phone rings the app will be called to
> >> provide the picture for the incoming call dialog, but if it is frozen
> >> at this point the more trusted app that handles the incoming phone
> >> call will not be able to get the picture.
> >
> > It will be able to do that if it causes the frozen part of user space to be
> > thawed.
> >
> > I think you have this problem already, though, because you use full system
> > suspend and all of your apps are frozen by it. So, to handle the situation you
> > describe above, you need to carry out full system resume that will thaw the
> > tasks for you. I don't see any fundamental difference betwee the two cases.
> >
>
> Yes, we can keep all our user space suspend blockers and thaw the
> frozen cgroup when any suspend blocker is held, but this would
> eliminate any power advantage that freezing a cgroup has over using
> suspend to freeze all processes.
Why does it have to have _any_ power advantage? It's totally sufficient if it
gives you approximately the same power savings. IOW, it doesn't have to be
_better_ if it's acceptable to the kernel people at large.
The rest of your objections have been addressed by Alan, so I'm not going to
repeat his arguments.
Rafael
next prev parent reply other threads:[~2010-06-06 13:29 UTC|newest]
Thread overview: 195+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-03 19:30 suspend blockers & Android integration Ingo Molnar
2010-06-03 19:50 ` Brian Swetland
2010-06-04 7:57 ` Ingo Molnar
2010-06-04 8:29 ` Brian Swetland
2010-06-04 8:55 ` Ingo Molnar
2010-06-04 9:03 ` Pekka Enberg
2010-06-04 9:08 ` Brian Swetland
2010-06-04 9:59 ` Ingo Molnar
2010-06-04 10:09 ` Brian Swetland
2010-06-04 14:24 ` James Bottomley
2010-06-04 15:07 ` Florian Mickler
2010-06-06 8:04 ` david
2010-06-10 13:58 ` Pavel Machek
2010-06-11 4:21 ` [linux-pm] " David Brownell
2010-06-11 14:28 ` James Bottomley
2010-06-11 14:46 ` Alan Stern
2010-06-11 15:01 ` Mark Brown
2010-06-11 15:02 ` James Bottomley
2010-06-11 20:48 ` Alan Stern
2010-06-11 21:04 ` James Bottomley
2010-06-12 17:10 ` Mark Brown
2010-06-12 2:43 ` David Brownell
2010-06-11 14:42 ` Alan Stern
[not found] ` <20100603231153.GA11302@elte.hu>
2010-06-03 23:23 ` Ingo Molnar
2010-06-03 23:37 ` Linus Torvalds
2010-06-03 23:46 ` Ingo Molnar
2010-06-04 2:16 ` Linus Torvalds
2010-06-04 2:26 ` Linus Torvalds
2010-06-04 3:45 ` Arjan van de Ven
2010-06-04 4:46 ` Linus Torvalds
2010-06-04 10:42 ` Andi Kleen
2010-06-04 8:15 ` Ingo Molnar
2010-06-06 8:16 ` david
2010-06-06 8:23 ` david
2010-06-04 3:45 ` Arve Hjønnevåg
2010-06-04 6:22 ` Ingo Molnar
2010-06-04 8:11 ` Ingo Molnar
2010-06-05 20:37 ` Florian Mickler
2010-06-04 0:39 ` Ingo Molnar
2010-06-04 14:50 ` Alan Stern
2010-06-04 4:38 ` Neil Brown
2010-06-04 4:54 ` Arve Hjønnevåg
2010-06-04 7:13 ` Ingo Molnar
2010-06-04 7:37 ` Arve Hjønnevåg
2010-06-04 8:34 ` Ingo Molnar
2010-06-04 8:56 ` Arve Hjønnevåg
2010-06-04 12:06 ` Peter Zijlstra
2010-06-05 0:10 ` Arve Hjønnevåg
2010-06-05 9:54 ` Peter Zijlstra
2010-06-05 16:28 ` Arjan van de Ven
2010-06-05 21:26 ` Arve Hjønnevåg
2010-06-05 22:23 ` Arjan van de Ven
2010-06-05 22:26 ` Brian Swetland
2010-06-05 22:48 ` Arjan van de Ven
2010-06-05 23:45 ` Thomas Gleixner
2010-06-06 0:34 ` Arve Hjønnevåg
2010-06-05 22:52 ` Rafael J. Wysocki
2010-06-05 22:39 ` Arve Hjønnevåg
2010-06-05 23:34 ` Arjan van de Ven
2010-06-06 0:02 ` Arve Hjønnevåg
2010-06-06 11:18 ` Felipe Contreras
2010-06-06 11:26 ` david
2010-06-06 7:52 ` [linux-pm] " Vitaly Wool
2010-06-06 8:20 ` Brian Swetland
2010-06-06 8:32 ` Vitaly Wool
2010-06-06 9:21 ` Brian Swetland
2010-06-06 9:56 ` david
2010-06-06 11:11 ` Felipe Contreras
2010-06-06 10:00 ` Vitaly Wool
2010-06-06 10:12 ` david
2010-06-06 10:19 ` [linux-pm] " Vitaly Wool
2010-06-06 10:49 ` Florian Mickler
2010-06-06 10:57 ` Vitaly Wool
2010-06-06 11:14 ` [linux-pm] " david
2010-06-07 12:16 ` Florian Mickler
2010-06-09 1:14 ` david
2010-06-09 3:46 ` Linus Torvalds
2010-06-09 7:43 ` [linux-pm] " Felipe Contreras
2010-06-09 9:40 ` Rafael J. Wysocki
2010-06-09 22:04 ` Neil Brown
2010-06-10 8:59 ` Rafael J. Wysocki
2010-06-10 12:00 ` Neil Brown
2010-06-10 16:06 ` Rafael J. Wysocki
2010-06-10 13:57 ` Mark Brown
2010-06-10 15:46 ` Rafael J. Wysocki
2010-06-10 19:01 ` Mark Brown
2010-06-10 14:47 ` Alan Stern
2010-06-10 15:44 ` Rafael J. Wysocki
2010-06-06 10:46 ` Florian Mickler
2010-06-06 11:05 ` Alan Cox
2010-06-06 13:34 ` Matthew Garrett
2010-06-06 14:31 ` James Bottomley
2010-06-06 15:46 ` [linux-pm] " Thomas Gleixner
2010-06-06 17:08 ` James Bottomley
2010-06-06 18:04 ` Thomas Gleixner
2010-06-06 18:44 ` Brian Swetland
2010-06-06 19:26 ` Thomas Gleixner
2010-06-06 19:05 ` [linux-pm] " Christoph Hellwig
2010-06-06 19:15 ` Brian Swetland
2010-06-06 19:24 ` [linux-pm] " Christoph Hellwig
2010-06-06 19:58 ` Brian Swetland
2010-06-06 22:26 ` Thomas Gleixner
2010-06-07 8:00 ` Christoph Hellwig
2010-06-07 8:03 ` Christoph Hellwig
2010-06-07 8:16 ` Brian Swetland
2010-06-07 13:20 ` Peter Zijlstra
2010-06-07 18:40 ` David Brownell
2010-06-07 23:17 ` Linus Walleij
2010-06-07 23:37 ` Brian Swetland
2010-06-08 2:15 ` Valdis.Kletnieks
2010-06-09 12:33 ` [linux-pm] " Mark Brown
2010-07-09 19:11 ` HTC Dream drivers was " Pavel Machek
2010-06-06 13:31 ` Matthew Garrett
2010-06-06 15:26 ` Vitaly Wool
2010-06-06 15:29 ` Matthew Garrett
2010-06-06 15:47 ` Vitaly Wool
2010-06-06 16:43 ` Matthew Garrett
2010-06-06 17:21 ` Vitaly Wool
2010-06-06 17:31 ` Matthew Garrett
2010-06-06 19:01 ` Rafael J. Wysocki
2010-06-07 10:25 ` Felipe Contreras
2010-06-07 13:01 ` Florian Mickler
2010-06-07 0:01 ` Alan Stern
2010-06-07 1:07 ` [linux-pm] suspend blockers & Android integrationy Thomas Gleixner
2010-06-07 14:42 ` Alan Stern
2010-06-07 15:49 ` Thomas Gleixner
2010-06-07 15:56 ` [linux-pm] suspend blockers & Android integration Florian Mickler
2010-06-08 0:57 ` Arve Hjønnevåg
2010-06-08 1:13 ` Alan Stern
2010-06-04 9:43 ` Peter Zijlstra
2010-06-04 9:54 ` Peter Zijlstra
2010-06-04 10:03 ` Ingo Molnar
2010-06-04 10:08 ` Peter Zijlstra
2010-06-04 10:11 ` Brian Swetland
2010-06-04 10:11 ` Thomas Gleixner
2010-06-04 10:13 ` Peter Zijlstra
2010-06-04 23:38 ` Rafael J. Wysocki
2010-06-05 0:05 ` Thomas Gleixner
2010-06-05 0:39 ` Arve Hjønnevåg
2010-06-05 1:18 ` Matt Helsley
2010-06-05 5:35 ` Arve Hjønnevåg
2010-06-05 18:25 ` Rafael J. Wysocki
2010-06-05 22:10 ` Arve Hjønnevåg
2010-06-05 23:03 ` Rafael J. Wysocki
2010-06-06 1:03 ` Arve Hjønnevåg
2010-06-06 2:49 ` Alan Stern
2010-06-06 11:09 ` [linux-pm] " Alan Stern
2010-06-08 0:23 ` Arve Hjønnevåg
2010-06-08 1:09 ` Alan Stern
2010-06-08 1:31 ` Arve Hjønnevåg
2010-06-08 2:32 ` Alan Stern
2010-06-08 3:05 ` Arve Hjønnevåg
2010-06-08 10:19 ` Florian Mickler
2010-06-08 14:50 ` Alan Stern
2010-06-09 1:48 ` Arve Hjønnevåg
2010-06-09 15:29 ` Alan Stern
2010-06-09 23:42 ` Arve Hjønnevåg
2010-06-10 4:21 ` david
2010-06-10 4:51 ` Arve Hjønnevåg
2010-06-10 5:10 ` Neil Brown
2010-06-10 14:39 ` Alan Stern
2010-06-10 14:28 ` Alan Stern
2010-06-10 23:02 ` Arve Hjønnevåg
2010-06-11 1:44 ` Alan Stern
2010-06-11 3:16 ` Arve Hjønnevåg
2010-06-11 14:33 ` Alan Stern
2010-06-11 22:18 ` Arve Hjønnevåg
2010-06-12 15:22 ` [linux-pm] " Alan Stern
2010-06-07 23:16 ` Arve Hjønnevåg
2010-06-06 13:29 ` Rafael J. Wysocki [this message]
2010-06-05 1:33 ` Thomas Gleixner
2010-06-05 5:23 ` Arve Hjønnevåg
2010-06-05 16:47 ` Thomas Gleixner
2010-06-05 21:47 ` Arve Hjønnevåg
2010-06-05 22:11 ` Thomas Gleixner
2010-06-05 23:21 ` Arve Hjønnevåg
2010-06-05 23:39 ` Rafael J. Wysocki
2010-06-06 0:04 ` Thomas Gleixner
2010-06-06 1:16 ` Arve Hjønnevåg
2010-06-06 10:36 ` Thomas Gleixner
2010-06-06 14:43 ` Matt Helsley
2010-06-08 0:45 ` Arve Hjønnevåg
2010-06-07 23:34 ` Arve Hjønnevåg
2010-06-06 10:56 ` Thomas Gleixner
2010-06-08 0:05 ` Arve Hjønnevåg
2010-06-06 0:19 ` Thomas Gleixner
2010-06-06 1:24 ` Arve Hjønnevåg
2010-06-06 0:32 ` Thomas Gleixner
2010-06-06 1:45 ` Arve Hjønnevåg
2010-06-06 10:01 ` Thomas Gleixner
2010-06-05 22:44 ` Rafael J. Wysocki
2010-06-05 23:56 ` Arve Hjønnevåg
2010-06-06 13:55 ` Rafael J. Wysocki
2010-06-08 0:39 ` Arve Hjønnevåg
2010-06-08 9:11 ` Rafael J. Wysocki
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=201006061529.42523.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=James.Bottomley@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=arve@android.com \
--cc=felipe.balbi@nokia.com \
--cc=florian@mickler.org \
--cc=hpa@zytor.com \
--cc=khilman@deeprootsystems.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=matthltc@us.ibm.com \
--cc=mingo@elte.hu \
--cc=neilb@suse.de \
--cc=peterz@infradead.org \
--cc=stern@rowland.harvard.edu \
--cc=swetland@google.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
/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).