Subject: [PATCH v5 0/5] ARM: EXYNOS: cpuidle: fix AFTR mode on boards with secure firmware enabled

From: [email-masked] (Krzysztof Kozlowski)
Date: Fri, 05 Sep 2014 14:28:04 +0200

On wto, 2014-08-05 at 17:07 +0200, Daniel Lezcano wrote:
> On 08/05/2014 04:26 PM, Krzysztof Kozlowski wrote:
> > On 05.08.2014 16:03, Daniel Lezcano wrote:
> >> On 08/05/2014 03:34 PM, Bartlomiej Zolnierkiewicz wrote:
> >>> Hi,
> >>>
> >>> This patch series adds support for AFTR idle mode on boards with
> >>> secure firmware enabled and allows EXYNOS cpuidle driver usage on
> >>> Exynos4x12 SoCs.
> >>>
> >>> It has been tested on Trats2 board (using Exynos4412 SoC with secure
> >>> firmware enabled) on which AFTR mode reduces power consumption by ~12%
> >>> when EXYNOS cpuidle driver is enabled (in both cases the default
> >>> exynos_defconfig config is used and CPU1-3 are offlined).
> >>
> >> As a sidenote:
> >>
> >> On my odroid-U2:
> >>   * 4 cpus online -> 130 mA
> >>   * 3 cpus online -> 164 mA
> >>   * 2 cpus online -> 160 mA
> >>   * 1 cpu online  -> 157 mA
> >>
> >> So were are consuming more when there are unplugged cpu ... any ideas ?
> >
> > On which tree are you testing? Current next has ARMCLK down feature
> > enabled. ARMCLK down may stop working after hotunplugging CPU:
> > http://www.spinics.net/lists/arm-kernel/msg352890.html
> >
> > That was observed especially on Exynos4212 where ARMCLK down stops
> > working permanently. On Trats2 (Exynos4412) the clock down stopped only
> > a for short period after disabling CPU.
> 
> Hi Krzysztof,
> 
> I tested the patches you mentioned above on top of this patchset.
> 
> You are right this is directly related to the ARMCLK but the behavior 
> may be not as you expect I think.
> 
> When I boot:
> 
> 4 cpus online => 131 mA
> 
> Then I unplug one by one the cpus:
> 
> 3 cpus online => 127 mA
> 2 cpus online => 123 mA
> 1 cpu online  => 120 mA
> 
> This is consistent.
> 
> But now, I online the cpus:
> 
> 2 cpus online => 162 mA
> 3 cpus online => 165 mA
> 4 cpus online => 131 mA
> 
> 
> -- side note --
> 
> Please note, I did not disable the cpuidle neither the AFTR state and 
> the kernel did not hang but I don't see the noticeable power saving we 
> should be observing when there is one cpu remaining entering the AFTR 
> state (cpuidle stats show we enter AFTR). So there is definitively 
> something wrong with this state.

Strange things happen... on current next-20140904 I couldn't reproduce
this inconsistent energy consumption after hotplug. At least on Trats2
(Exynos4412) and Gear1 (Exynos4212) it behaves consistently (and
properly with my patches).

Anyway I'll respin the patchset.

Best regards,
Krzysztof