Re: [11/11] system 1: Saving energy using DVFS
From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2014-01-20 17:18:27
Also in:
lkml
On Mon, Jan 20, 2014 at 05:10:29PM +0000, Catalin Marinas wrote:
On Mon, Jan 20, 2014 at 04:49:26PM +0000, Pavel Machek wrote:quoted
quoted
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: 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.
BTW, the proper way to calculate this is to use the energy rather than current x time. This would be J = Ohm * A^2 * s = V^2 / Ohm * s (so the impact of the current is even bigger). -- Catalin