From: NeilBrown <neilb@suse.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Pavel Machek <pavel@ucw.cz>,
ksummit-discuss@lists.linuxfoundation.org,
kyungmin.park@samsung.com, John Stultz <john.stultz@linaro.org>,
Bjorn Andersson <Bjorn.Andersson@sonymobile.com>
Subject: Re: [Ksummit-discuss] [CORE TOPIC] Mainline kernel on a cellphone
Date: Thu, 30 Jul 2015 09:59:03 +1000 [thread overview]
Message-ID: <20150730095903.5cb431a4@noble> (raw)
In-Reply-To: <3567831.C87ORqHPr8@vostro.rjw.lan>
On Thu, 30 Jul 2015 01:23:21 +0200 "Rafael J. Wysocki"
<rjw@rjwysocki.net> wrote:
> On Wednesday, July 29, 2015 02:51:22 AM Rafael J. Wysocki wrote:
> > On Wednesday, July 29, 2015 08:03:50 AM NeilBrown wrote:
> > > On Sat, 25 Jul 2015 00:26:03 +0200 "Rafael J. Wysocki"
> > > <rjw@rjwysocki.net> wrote:
> > >
> > > > On Thursday, July 23, 2015 11:00:49 PM Tony Lindgren wrote:
> > > > > * NeilBrown <neilb@suse.com> [150723 21:37]:
> > > > > > On Thu, 23 Jul 2015 22:34:29 +0200 Pavel Machek <pavel@ucw.cz> wrote:
> > > > > > >
> > > > > > > and the big one... for Android people (not me):
> > > > > > >
> > > > > > > 6) do we need to use s2ram (and then pretend phone is not suspended)
> > > > > > > to save power on cellphones? If so, do we need new interface for
> > > > > > > applications to signal "I'd really like to run"?
> > > > > > >
> > > > > >
> > > > > > For the first half of this question, the answer is:
> > > > > > Probably not. runtime-pm should be able to put all devices to sleep,
> > > > > > and cgroup freezer should be able to freeze untrusted processes.
> > > > >
> > > > > Yes s2ram is just an additional tool. PM runtime alone can
> > > > > already provide a reasonable battery life for a phone as long as
> > > > > it's properly implemented and the hardware supports it. With
> > > > > reasonable battery life in this case I mean over 10 days in idle
> > > > > mode with system running and timers working.
> > > > >
> > > > > > But I suspect runtime-pm doesn't provide as much power saving as
> > > > > > system suspend, and using the cgroup freezer means lots of changes to
> > > > > > userspace.
> > > > > > So lots of work would be needed to meet this goal, if it is a
> > > > > > worthwhile goal.
> > > > >
> > > > > And with s2ram the difference is that then the system is not running
> > > > > and timers don't work so it really needs to be optional.
> > > >
> > > > Right.
> > > >
> > > > Even with suspend-to-idle we can get less energy usage with respect to
> > > > runtime idle (device runtime PM plus cpuidle) just because timer events
> > > > are disabled then.
> > > >
> > >
> > > Is this just the timer interrupt which keeps the clock up to date, or
> > > are there other timer events which keep ticking?
> >
> > The other events mostly.
> >
> > > Would it be possible for the wall-clock timer to stop if the system
> > > has been idle for a while, and for the RTC to be used to recover the
> > > correct time when activity restarts?
> >
> > We use that mechanism in suspend-to-idle, but it requires the timekeeping
> > to be frozen. I don't think it would be possible to do that for runtime
> > idle without races, though.
>
> Moreover, the "if the system has been idle for a while" condition is not really
> in line with how runtime idle works. Namely, it works by predicting how much
> time the given CPU will be idle (on the basis of when the next timer event
> for it is scheduled among other things) and selecting an idle state for it
> to go to in accordance with that. So we know upfront how much time the CPU
> will be idle (at least roughly) and we rely on timer events to wake up CPUs
> from idle states.
>
> In the suspend-to-idle case we only need to care about events from devices
> explicitly enabled to wake up the system from sleep and that's why we can safely
> suspend the timekeeping then.
>
Thanks ... this actually helps me understand the point of
suspend-to-idle which didn't really make a lot of sense to me before
(though it entirely possible that I'm still missing some bits).
A while ago (years?) there was a debate about whether it was really
sensible/necessary to use system suspend to save power. This was in
the context of Android and suspend-blocker/wake-locks. One school of
thought was that with sufficient runtime-PM and appropriate controls of
user-space processes, system-wide suspend was not necessary.
You seem to be saying that timer-interrupts are the deal-breaker. The
only way to stop timer interrupts indefinitely is using some sort of
system-wide suspend, whether suspend-to-RAM or suspend-to-idle.
While it may be possible to achieve significant power savings without
using system-wide suspend, there is a limit and system-wide suspend
will always allow better savings.
Would that be correct? If so: it is nice to have a clear answer -
thanks.
NeilBrown
next prev parent reply other threads:[~2015-07-29 23:59 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-23 10:57 Pavel Machek
2015-07-23 11:21 ` Linus Walleij
2015-07-23 12:14 ` Pavel Machek
2015-07-23 12:42 ` Steven Rostedt
2015-07-23 15:40 ` Mark Brown
2015-07-28 22:09 ` Tim Bird
2015-07-28 23:07 ` Bjorn Andersson
2015-07-31 16:18 ` Rob Herring
2015-07-31 16:56 ` Bjorn Andersson
2015-08-11 9:34 ` Johannes Berg
2015-07-31 17:25 ` Tim Bird
2015-08-03 15:29 ` John W. Linville
2015-08-03 7:42 ` Linus Walleij
2015-08-03 21:34 ` Rob Herring
2015-08-03 22:36 ` Marcel Holtmann
2015-08-05 8:40 ` Linus Walleij
2015-08-05 8:46 ` Linus Walleij
2015-08-05 9:11 ` Samuel Ortiz
2015-08-05 11:54 ` Pavel Machek
2015-08-05 9:09 ` Samuel Ortiz
2015-08-05 17:19 ` Marcel Holtmann
2015-08-05 16:02 ` Rob Herring
2015-08-05 17:00 ` Marcel Holtmann
2015-08-07 12:40 ` Linus Walleij
2015-07-29 0:45 ` Krzysztof Kozlowski
2015-07-29 6:12 ` Laurent Pinchart
2015-07-29 7:40 ` Pavel Machek
2015-08-25 18:59 ` Tim Bird
2015-08-26 1:22 ` Krzysztof Kozlowski
2015-08-26 4:25 ` Sudip Mukherjee
2015-08-26 4:52 ` Krzysztof Kozlowski
2015-08-26 5:30 ` Laurent Pinchart
2015-08-26 5:33 ` Krzysztof Kozlowski
2015-08-26 6:15 ` Josh Triplett
2015-08-26 7:23 ` Heiko Stuebner
2015-08-26 8:05 ` Krzysztof Kozlowski
2015-08-28 8:20 ` Nicolas Ferre
2015-08-26 11:33 ` Mark Brown
2015-08-26 12:56 ` Jason Cooper
2015-08-26 13:35 ` Geert Uytterhoeven
2015-08-26 13:58 ` Sudip Mukherjee
2015-08-26 14:51 ` Jason Cooper
2015-08-26 17:13 ` Sudip Mukherjee
2015-08-26 20:09 ` Greg Kroah-Hartman
2015-08-28 7:44 ` Pavel Machek
2015-08-28 8:42 ` Heiko Stuebner
2015-08-29 15:47 ` Sudip Mukherjee
2015-07-29 8:18 ` Heiko Stübner
2015-07-29 0:56 ` Rafael J. Wysocki
2015-07-29 6:43 ` Daniel Vetter
2015-07-29 17:42 ` Tim Bird
2015-07-29 7:14 ` Bintian
2015-07-29 18:07 ` Tim Bird
2015-07-31 1:50 ` Bintian
2015-07-23 20:29 ` Pavel Machek
2015-07-23 20:34 ` Pavel Machek
2015-07-24 4:34 ` NeilBrown
2015-07-24 6:00 ` Tony Lindgren
2015-07-24 22:26 ` Rafael J. Wysocki
2015-07-28 22:03 ` NeilBrown
2015-07-29 0:51 ` Rafael J. Wysocki
2015-07-29 23:23 ` Rafael J. Wysocki
2015-07-29 23:59 ` NeilBrown [this message]
2015-07-30 0:57 ` Rafael J. Wysocki
2015-07-31 17:55 ` Mark Brown
2015-08-01 0:08 ` Rafael J. Wysocki
2015-07-23 21:00 ` josh
2015-07-23 21:29 ` Pavel Machek
2015-07-29 13:32 ` Mark Brown
2015-07-31 12:22 ` Pavel Machek
2015-07-31 17:52 ` Mark Brown
2015-07-31 22:03 ` Pavel Machek
2015-08-01 10:55 ` Mark Brown
2015-08-01 19:03 ` Pavel Machek
2015-08-04 17:17 ` Mark Brown
2015-08-03 5:33 ` Tony Lindgren
2015-07-23 13:23 ` Krzysztof Kozlowski
2015-07-23 21:56 ` Pavel Machek
2015-07-24 1:37 ` Krzysztof Kozlowski
2015-07-24 4:40 ` Kyungmin Park
2015-07-23 14:48 ` Shuah Khan
2015-07-23 15:08 ` Heiko Stübner
2015-08-04 19:39 ` Pavel Machek
2015-08-05 7:05 ` Bintian
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=20150730095903.5cb431a4@noble \
--to=neilb@suse.com \
--cc=Bjorn.Andersson@sonymobile.com \
--cc=john.stultz@linaro.org \
--cc=ksummit-discuss@lists.linuxfoundation.org \
--cc=kyungmin.park@samsung.com \
--cc=pavel@ucw.cz \
--cc=rjw@rjwysocki.net \
/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