Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: James Bottomley
Date: Saturday, May 29, 2010 - 9:10 am

On Sat, 2010-05-29 at 10:10 +0200, Peter Zijlstra wrote:

Look, this is getting into the realms of a pointless semantic quibble.
The problem is that untrusted tasks need to be forcibly suspended when
they have no legitimate work to do and the user hasn't authorised them
to continue even if the scheduler sees them as runnable.  Whether that's
achieved by suspending the entire system or forcibly idling the tasks
(using blocking states or freezers or something) so the scheduler can
suspend from idle is something to be discussed, but the net result is
that we have to stop a certain set of tasks in such a way that they can
still receive certain external events ... semantically, this is
equivalent to not running runnable tasks in my book. (Perhaps this whole
thing is because the word runnable means different things ... I'm
thinking a task that would consume power ... are you thinking in the
scheduler R state?)

Realistically, the main thing we need to do is stop timers posted
against the task (which is likely polling in a main loop, that being the
usual form of easy to write but power crazy app behaviour) from waking
the task and bringing the system out of suspend (whether from idle or
forced).


That's rubbish and you know it.  We do software workarounds for hardware
problems all the time ... try doing a git grep -i errata in arch x86, or
imagine a USB subsystem that only supported sane standards conforming
devices: that would have an almost zero intersect with the current USB
device market.

The job of the kernel is to accommodate hardware as best it can ...
sometimes it might not be able to, but most of the time it does a pretty
good job.

The facts are that C states and S states are different and are entered
differently.  For some omap hardware, the power consumption in the
lowest C state (with all the ancillary power control) is the same as S3,
that's fine, suspend from idle works as well as suspend to ram modulo
bad apps. For quite a lot of MSM hardware, the lowest C state power
consumption is quite a bit above S3.  It's not acceptable to tell those
people "tough, your battery runs out in 30 minutes because you bought
the wrong hardware".  We have to figure out how to get to S3 ... whether
this is from idle or some other mechanism is again a discussion point,
but not doing it is not an option.


Strange, that's not what I heard as the possible solution.  I thought he
was advocating expressing the kernel side of suspend blockers as QoS
constraints.  Once we have QoS constraints correctly done in the kernel,
userspace still has to express its requirements.  If the requirements
are static, then they can be done from policy files or in some other
static way but if they're dynamic, they'll still have to be in the
applications ... in about the same places the android wakelocks are.


I don't think anyone disagrees with this. As long as we find a long term
solution that satisfies the android case, everyone will be happy.


James


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Thu May 27, 3:09 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Thu May 27, 3:36 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Thu May 27, 7:47 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Brian Swetland, (Thu May 27, 9:55 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Thu May 27, 11:39 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Fri May 28, 12:11 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Fri May 28, 2:32 am)
Re: resume latency QoS support, unify suspend/resume into ..., Arve Hjønnevåg, (Fri May 28, 2:59 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Fri May 28, 4:20 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 4:41 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Fri May 28, 5:30 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 5:31 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Brian Swetland, (Fri May 28, 5:52 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Fri May 28, 6:20 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Brian Swetland, (Fri May 28, 6:27 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 7:02 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 7:05 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 7:21 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Brian Swetland, (Fri May 28, 7:29 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Fri May 28, 7:41 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Fri May 28, 7:59 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Brian Swetland, (Fri May 28, 8:13 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Fri May 28, 8:53 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Zygo Blaxell, (Fri May 28, 10:27 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Fri May 28, 11:16 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Zygo Blaxell, (Fri May 28, 12:51 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Fri May 28, 2:44 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Fri May 28, 2:53 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Fri May 28, 4:42 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Fri May 28, 5:43 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat May 29, 12:53 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat May 29, 1:10 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Sat May 29, 1:28 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Sat May 29, 1:56 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Sat May 29, 9:10 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat May 29, 11:12 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat May 29, 11:12 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat May 29, 11:12 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Sat May 29, 1:12 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Mon May 31, 1:12 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Mon May 31, 1:47 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Mon May 31, 1:49 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Mon May 31, 1:52 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Mon May 31, 2:13 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Mon May 31, 2:14 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Mon May 31, 2:21 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Mon May 31, 2:41 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Mon May 31, 2:46 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Mon May 31, 3:17 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Mon May 31, 3:23 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Mon May 31, 3:27 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Mon May 31, 4:47 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Mon May 31, 10:21 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Tue Jun 1, 4:10 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Matthew Garrett, (Tue Jun 1, 6:51 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Tue Jun 1, 2:01 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Tue Jun 1, 3:24 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Tue Jun 1, 3:36 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Tue Jun 1, 6:10 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Tue Jun 1, 8:15 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Tue Jun 1, 8:32 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Tue Jun 1, 9:02 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Tue Jun 1, 9:14 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Tue Jun 1, 9:41 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Wed Jun 2, 12:00 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Wed Jun 2, 12:17 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Wed Jun 2, 12:21 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Wed Jun 2, 8:05 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Wed Jun 2, 12:47 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Wed Jun 2, 1:41 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Arve Hjønnevåg, (Wed Jun 2, 3:27 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Wed Jun 2, 4:03 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Wed Jun 2, 4:06 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Thu Jun 3, 3:05 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Thu Jun 3, 6:24 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Thu Jun 3, 7:18 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Thomas Gleixner, (Thu Jun 3, 7:35 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Thu Jun 3, 7:55 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), James Bottomley, (Thu Jun 3, 10:01 am)
RE: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Muralidhar, Rajeev D, (Thu Jun 3, 10:16 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Bryan Huntsman, (Thu Jun 3, 2:50 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Sat Jun 5, 9:58 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Sat Jun 5, 10:04 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Sat Jun 5, 10:16 am)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Sat Jun 5, 12:04 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat Jun 5, 12:16 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Rafael J. Wysocki, (Sat Jun 5, 12:39 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Sat Jun 5, 12:49 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Peter Zijlstra, (Sat Jun 5, 12:52 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Sat Jun 5, 12:53 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Felipe Contreras, (Sat Jun 5, 12:56 pm)
Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8), Florian Mickler, (Sat Jun 5, 2:52 pm)