From: Catalin Marinas <catalin.marinas@arm.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Morten Rasmussen <Morten.Rasmussen@arm.com>,
"peterz@infradead.org" <peterz@infradead.org>,
"mingo@kernel.org" <mingo@kernel.org>,
"rjw@rjwysocki.net" <rjw@rjwysocki.net>,
"markgross@thegnar.org" <markgross@thegnar.org>,
"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [11/11] system 1: Saving energy using DVFS
Date: Tue, 21 Jan 2014 11:42:25 +0000 [thread overview]
Message-ID: <20140121114225.GC14830@arm.com> (raw)
In-Reply-To: <20140120181208.GC25439@amd.pavel.ucw.cz>
On Mon, Jan 20, 2014 at 06:12:08PM +0000, Pavel Machek wrote:
> > > Sleeping CPU: 2mA
> > > Screen on: 230mA
> > > CPU loaded: 250mA
> > >
> > > Now, lets believe your numbers and pretend system can operate at 33%
> > > of speed with 11% power consumption.
> > >
> > > Lets take task that takes 10 seconds on max frequency:
> > >
> > > ~ 10s * 470mA = 4700mAs
> > >
> > > You suggest running at 33% speed, instead; that means 30 seconds on
> > > low requency.
> > >
> > > CPU on low: 25mA (assumed).
> > >
> > > ~ 30s * 255mA = 7650mAs
> > >
> > > Hmm. So race to idle is good thing on Intel machines, and it is good
> > > thing on ARM design I have access to.
> >
> > Race to idle doesn't mean that the screen goes off as well. Let's say
> > the screen stays on for 1 min and the CPU needs to be running for 10s
> > over this minute, in the first case you have:
> >
> > 10s & 250mA + 60s * 230mA = 16300mAs
> >
> > in the second case you have:
> >
> > 30s * 25mA + 60s * 230mA = 14550mAs
> >
> > That's a 1750mAs difference. There are of course other parts drawing
> > current but simple things like the above really make a difference in the
> > mobile space, both in terms of battery and thermal budget.
>
> Aha, I noticed the values are now the other way around. [And notice
> that if user _does_ lock/turn off the screen after the operation,
> difference between power consumptions is factor of two. People do turn
> off screens before putting phone back in pocket.]
It depends on the use-case, that's why the problem is so complicated.
Race-to-idle may work well if just checking bus timetables but not if
you are watching video or listening to music (the latter with screen
off).
> You are right that as long as user does _not_ wait for the computation
> result, running at low frequency might make sense. That may be true on
> cellphone so fast that all the actions are "instant". I have yet to
> see such cellphone. That probably means that staying on low frequency
> normally and going to high after cpu is busy for 100msec or so is
> right thing: if cpu is busy for 100msec, it probably means user is
> waiting for the result.
I'm talking about use-cases where a task (or multiple threads) are
running and only loading the CPU partially (audio or video playback).
Here you have an average number of instructions to execute per decoded
frame in a certain time. Once the frame is decoded, the CPU can go idle,
so you can choose whether to race to idle or run at lower frequency (and
lower energy per the same number of frame decoding instructions) with
less idle time. There are modern platforms where the latter behaviour is
more efficient.
I would really like race to idle to be true for all cases, it would
simplify the kernel and we could just remove cpufreq, always running the
CPUs at max frequency. But so far I don't see Intel ignoring this
problem either, they keep developing a pstate driver which changes the
P-states based on average CPU load.
(we can complicate the problem further by considering memory vs CPU
bound threads)
> But it depends on the numbers you did not tell us. I'm pretty sure
> N900 does _not_ have 11% power consuption at 33% performance; I just
> assumed so for sake of argument.
>
> So, really, details are needed.
If that's the only issue to be addressed, I'm happy to ignore the
frequency scaling initially and focus on idle. But since people still do
frequency scaling and this would interfere with the scheduler, we have
to (1) normalise the task load as much as possible (frequency invariant
load tracking) and (2) scheduler power model should take into account
the cost of placing tasks on CPUs at different P-states. With such
simplification we can leave the P-state selection to cpufreq and see how
far we can get in terms of power efficiency.
--
Catalin
next prev parent reply other threads:[~2014-01-21 11:42 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-07 16:19 [0/11][REPOST] Energy-aware scheduling use-cases and scheduler issues Morten Rasmussen
2014-01-07 16:19 ` [1/11] issue 1: Missing power topology information in scheduler Morten Rasmussen
2014-01-07 16:19 ` [2/11] issue 2: Energy-awareness for heterogeneous systems Morten Rasmussen
2014-01-07 16:19 ` [3/11] issue 3: No understanding of potential cpu capacity Morten Rasmussen
2014-01-13 21:07 ` Rafael J. Wysocki
2014-01-14 10:27 ` Peter Zijlstra
2014-01-14 16:39 ` Morten Rasmussen
2014-01-14 16:51 ` Peter Zijlstra
2014-01-07 16:19 ` [4/11] issue 4: Tracking idle states Morten Rasmussen
2014-01-07 16:19 ` [5/11] issue 5: Frequency and uarch invariant task load Morten Rasmussen
2014-01-08 12:31 ` Peter Zijlstra
2014-01-16 11:16 ` Morten Rasmussen
2014-01-07 16:19 ` [6/11] issue 6: Poor and non-deterministic performance on heterogeneous systems Morten Rasmussen
2014-01-07 16:19 ` [7/11] use-case 1: Webbrowsing on Android Morten Rasmussen
2014-01-07 16:19 ` [8/11] use-case 2: Audio playback " Morten Rasmussen
2014-01-07 16:19 ` [9/11] use-case 3: Video " Morten Rasmussen
2014-01-07 16:19 ` [10/11] use-case 4: Game " Morten Rasmussen
2014-01-07 16:19 ` [11/11] system 1: Saving energy using DVFS Morten Rasmussen
2014-01-20 16:32 ` Pavel Machek
2014-01-21 12:14 ` Morten Rasmussen
2014-01-21 12:31 ` Pavel Machek
2014-01-20 16:49 ` Pavel Machek
2014-01-20 17:10 ` Catalin Marinas
2014-01-20 17:17 ` Catalin Marinas
2014-01-20 17:47 ` Pavel Machek
2014-01-20 18:03 ` Catalin Marinas
2014-01-20 19:15 ` Pavel Machek
2014-01-21 11:19 ` Catalin Marinas
2014-01-20 17:54 ` Pavel Machek
2014-01-20 18:16 ` Catalin Marinas
2014-01-20 20:44 ` Pavel Machek
2014-01-20 18:25 ` Sebastian Reichel
2014-01-21 18:53 ` Kalle Jokiniemi
2014-01-20 18:12 ` Pavel Machek
2014-01-21 11:42 ` Catalin Marinas [this message]
2014-01-21 12:20 ` Pavel Machek
-- strict thread matches above, loose matches on Subject: below --
2013-12-20 16:45 [0/11] Energy-aware scheduling use-cases and scheduler issues Morten Rasmussen
2013-12-20 16:45 ` [11/11] system 1: Saving energy using DVFS Morten Rasmussen
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=20140121114225.GC14830@arm.com \
--to=catalin.marinas@arm.com \
--cc=Morten.Rasmussen@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=markgross@thegnar.org \
--cc=mingo@kernel.org \
--cc=pavel@ucw.cz \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=vincent.guittot@linaro.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).