linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Arve Hjønnevåg" <arve@android.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
	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: Fri, 4 Jun 2010 22:23:29 -0700	[thread overview]
Message-ID: <AANLkTikU21xF49Z-_Lnrq7U7buNmqw_gyEEST8LuN24z@mail.gmail.com> (raw)
In-Reply-To: <alpine.LFD.2.00.1006050246350.2933@localhost.localdomain>

2010/6/4 Thomas Gleixner <tglx@linutronix.de>:
> Arve,
>
> On Fri, 4 Jun 2010, 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:
>> >> I kind of agree here, so I'd like to focus a bit on that.
>> >>
>> >> Here's my idea in the very general terms:
>> >>
>> >> (1) Use the cgroup freezer to "suspend" the "untrusted" apps (ie. the ones
>> >>     that don't use suspend blockers aka wakelocks in the Android world) at the
>> >>     point Android would normally start opportunistic suspend.
>> >
>> > There is an additional benefit to this approach:
>> >
>> >     In the current android world a background task (e.g. download
>> >     initiated before the screensaver kicked in) prevents the suspend,
>> >     but that also means that the crapplications can still suck power
>> >     completely unconfined.
>> >
>>
>> Yes this can happen. It is usually only a big problem when you combine
>> an (trusted) application that has a bug that blocks suspend forever
>> with an application that wakes up too often for us to enter low power
>> idle modes.
>
> Why is it a BUG in the trusted app, when I initiate a download and put
> the phone down ?
>

It is not, but we have had bugs where a trusted app does not unblock
suspend after some failure case where it is no longer making any
progress.

> That download might take a minute or two, but that's not an
> justification for the crapplication to run unconfined and prevent
> lower power states.
>

I agree, but this is not a simple problem to solve.

>> >     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.
>
> Sorry, that's really the worst argument I saw in this whole
> discussion.
>
> You're basically saying, that you have no idea what your user space
> stack is doing and you do not care at all as long as your suspend
> blocker scheme makes things work somehow.
>

Yes I don't know everything our user-space stack is doing, but I do
know that it makes many calls between processes (and in both
directions). As far as I know it uses timeouts when calling into
untrusted code, so a misbehaving application will cause an error
dialog to pop up asking if the user if it should wait longer or
terminate the application.

> Up to that point, I really tried hard to step back from my initial
> "OMG, promoting crap is a nono" reaction and work with you on a
> sensible technical solution to confine crap and make it aligned with
> other efforts in this area.
>
> So now, after I spent a reasonable amount of time (as you did) to
> understand what your requirements are, you come up with another
> restriction which is so outside of any level of sanity, that I'm at
> the point of giving up and just going into NAK mode.
>

I don't think this is a new restriction. Both Brian and I have
mentioned that we have a lot of dependencies between processes.

> Can you please answer the following question:
>
>    What is the point of having the distinction of "trusted" and
>    "untrusted" when you have no way to prevent "trusted" code calling
>    "into "untrusted" code ?
>

Trusted code that calls into untrusted code has to deal with the
untrusted code not responding, but we only want to pop up a message
that the application is not responding if it is misbehaving, not just
because it was frozen though no fault of its own.

> That's violating any sense of abstraction and layering and makes it
> entirely clear that the only way you can deal with your own design
> failure is a big hammer which you need to force into the kernel.
>

How can it be fixed? The user presses the back button, the framework
determines that app A is in the foreground and send the key to app A,
app A decides that it it does not have anything internal to go back to
and tells the framework to switch back to the previous app. If the
user presses the back key again, the framework does not know which app
this key should go to until app A has finished processing the first
key press.

> Sorry, no. I'm perfectly willing to make progress on that, as long as
> we walk on a sane ground. But abusing the kernel for fixing basic
> engineering problems in the user space side of affairs is completely
> out of discussion.
>
>> >> I wonder what people think.  Is this realistic and if so, would it be difficult
>> >> to implement?
>> >
>> > I think it's realistic and not overly complicated to implement.
>> >
>>
>> The kernel support can be easily implemented on most arm hardware, I
>> don't know if it can work on most existing x86 hardware. It does not
>
> It does not matter. Even Intel folks told you more than once, that x86

How does it not matter. Are dropping support for existing x86 hardware
once the new hardware comes out?

> hardware is going to be fixed pretty soon. Hint: that's crucial to
> their business ....
>
>> give us the same power savings as suspend with existing software, but
>> it can handle bad apps better (assuming you don't combine
>> opportunistic suspend and cgroup freezing). The biggest hurdle is how
>> to handle dependencies between processes that gets frozen and
>> processes that don't get frozen.
>
> See above.
>
> Thanks,
>
>        tglx



-- 
Arve Hjønnevåg
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-06-05  5:23 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
2010-06-05  1:33             ` Thomas Gleixner
2010-06-05  5:23               ` Arve Hjønnevåg [this message]
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=AANLkTikU21xF49Z-_Lnrq7U7buNmqw_gyEEST8LuN24z@mail.gmail.com \
    --to=arve@android.com \
    --cc=James.Bottomley@suse.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=arjan@infradead.org \
    --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=mingo@elte.hu \
    --cc=neilb@suse.de \
    --cc=peterz@infradead.org \
    --cc=rjw@sisk.pl \
    --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).