AW: Why is the e500v2 core not using cpuidle?

Thomas Waldecker Thomas.Waldecker at tqs.de
Sat Feb 2 20:41:27 EST 2013


Hi Scott,

>> Why is there no support for the cpuidle framework?
> Because nobody implemented it. :-)
That's the reason I thought before :-)

> The only reason I can think of to implement it on this chip would be to
> dynamically choose when to enter nap versus doze, rather than always
> just using doze.  It's not clear whether the difference in power
> savings is worth it -- do you have any way of measuring?

Is the e500 only using doze? There are comments in the file 
arch/powerpc/kernel/idle_e500.S
which are stating:
/*  Go to NAP or DOZE now */
or
/* Return from NAP/DOZE ...*/

and because of this comments I thought that both modes are in use.

I have a way of measuring the power and it is also a small part of my masterthesis,
but it is not very meaningful because at the measuring point there are other peripheral
components too.

According to the comments can I activate the nap mode somehow?

>> How can I debug the e500 idle modes?
>> Are there any statistics?
> Top reports idle percentage...
If the e500 and e500v2 are indeed using only the doze mode it 
would be enough statistics.

>> I already ran PowerTOP on a QorIQ P2020 but it's almost useless
>> because the information is missing.
> What information are you looking for?

On my laptop I get detailled idle stats in PowerTOP 2.2

          Package   |            CPU 0
POLL        0.0%    | POLL        0.0%    0.0 ms
C1          0.7%    | C1          0.4%    0.2 ms
C2         86.0%    | C2         86.8%    1.4 ms

                    |            CPU 1
                    | POLL        0.0%    0.4 ms
                    | C1          0.9%    0.6 ms
                    | C2         85.2%    1.5 ms

It is using the sysfs interface

thomas at localhost /s/d/s/c/c/cpuidle> pwd
/sys/devices/system/cpu/cpu0/cpuidle
thomas at localhost /s/d/s/c/c/cpuidle> tree
.
├── state0
│   ├── desc
│   ├── disable
│   ├── latency
│   ├── name
│   ├── power
│   ├── time
│   └── usage
├── state1
    (same as state0)
└── state2
    (also same as state 0)
thomas at localhost /s/d/s/c/c/cpuidle> cat */name
POLL
C1
C2

Such statistics would be great for the doze, nap (and sleep for the whole package).

Kind regards,
Thomas


More information about the Linuxppc-dev mailing list