linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kalle Jokiniemi <kalle.jokiniemi@jolla.com>
To: Sebastian Reichel <sre@ring0.de>, Pavel Machek <pavel@ucw.cz>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	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 20:53:43 +0200	[thread overview]
Message-ID: <52DEC237.9080404@jolla.com> (raw)
In-Reply-To: <20140120182532.GB25920@earth.universe>

Hi,

On 20.01.2014 20:25, Sebastian Reichel wrote:
> On Mon, Jan 20, 2014 at 06:54:32PM +0100, Pavel Machek wrote:
>> On Mon 2014-01-20 17:10:29, Catalin Marinas wrote:
>>> On Mon, Jan 20, 2014 at 04:49:26PM +0000, Pavel Machek wrote:
>>>>> To save energy, the higher frequencies should be avoided and only used
>>>>> when the application performance requirements can not be satisfied
>>>>> otherwise (e.g. spread tasks across more cpus if possible).
>>>>
>>>> I argue this is untrue for any task where user waits for its
>>>> completion with screen on. (And that's quite important subset).
>>>>
>>>> Lets take Nokia n900 as an example.
>>>>
>>>> (source http://wiki.maemo.org/N900_Hardware_Power_Consumption)
>>>>
>>>> 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:
>>
>> No, it does not. I just assumed user is continuing to use his
>> machine. Obviously, waiting 60 seconds with screen on will make the
>> difference look smaller. But your solution still means user has to
>> wait longer _and_ you consume more battery doing so.
>>
>> And this is for any task where user waits for result with screen
>> on. Like rendering a webpage. Like opening settings screen. Like
>> installing application.
>>
>> There are not too many background tasks on a cellphone.
>>
>> But hey, maybe you are right and running at lowest possible frequency
>> is right. Please provide concrete numbers like I did.
>
> So what about using the display status information for power
> management? Basically always using the lowest frequency should be ok
> on phones if the display is disabled?

Well, not really. There are a looot of devices running linux kernel, and 
there are always devices and use cases that can't operate if you 
hardcode something like that.

It is good to know what the problematic use cases are, but it usually 
does not end well if you optimize for specifics. End users are 
unpredictable in ways they utilize their devices :)

And these days audio playback power optimization in smart phones is 
mostly for the product spec marketing purposes anyways :P

I think the discussion has been going into right direction:
- find what data we have to make better decisions
- find ways to utilize that data

And then in the end the big smart phone manufacturers will twist that to 
their use cases in horrible ways to meet product specs on tight 
schedules :D But at least the starting point will be closer to target.

Even on N900 dvfs is beneficial for audio playback. But it was not 
because of CPU consuming less, it was because the peripheral bus 
frequency was tied to CPU frequency. There we ended up removing a very 
low 125MHz cpu operating point so that the device ran at highest 
possible 250MHz CPU rate (to idle quickly) while still keeping the lower 
peripheral bus speed.

So we raced to idle and used DVFS.. how nice :)

- Kalle

>
> -- Sebastian
>

  reply	other threads:[~2014-01-21 18:53 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 [this message]
2014-01-20 18:12       ` Pavel Machek
2014-01-21 11:42         ` Catalin Marinas
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=52DEC237.9080404@jolla.com \
    --to=kalle.jokiniemi@jolla.com \
    --cc=Morten.Rasmussen@arm.com \
    --cc=catalin.marinas@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=sre@ring0.de \
    --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).