Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-pm@...>
Cc: Pierre Ossman <drzeus-list@...>, Pavel Machek <pavel@...>, LKML <linux-kernel@...>, Adam Belay <abelay@...>, Andi Kleen <andi@...>, Lee Revell <rlrevell@...>
Date: Wednesday, March 12, 2008 - 3:11 pm

> > USB keeps processor out of C3 in many cases.

Modern Intel mobile processors have a feature called "C2 popup"
that allows the processor to retire DMA from C3 without
breaking into C0.  Instead the processor pops up to C2
where the cache snoop can allow the DMA to retire --
then it returns to C3, all transparent to software.

That is why powertop does not see it.


ak> Normally such things are not visible in the DSDT, but hidden in SMM traps.

no, this mechanism is totally visible to the OS via a _CST re-evaluation on AC/DC transition.

This is very commmon, as the reference BIOS code does it.
It isn't a secret.  There are two common techniques -- either
re-define C3 to enter hardware C4, or simply add C4 as 4th C-state.


the latest cpuidle code actually publishes the details of the C-states being used.
 
$ pwd
/sys/devices/system/cpu/cpu0/cpuidle/state3
$ grep . *
desc:ACPI FFH INTEL MWAIT 0x20
latency:17
name:C3
power:250
time:1862590932
usage:9028970

You'll see "desc" change if ACPI pulls a _CST change on you.


if you disable it at run-time, Linux puts it in C1.
If you never boot it in the first place (eg. maxcpusp=1), the BIOS leaves it in the deepest available C-sate.

The former will prevent the package from entering a deep package C-state,
as c-states are coordinated in hardware.  The later will allow the package
to enter whatever C-state the running core chooses.
 

yup, that's why we put it in.  Is it insufficient?

-Len

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC][PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Fri Feb 29, 2:38 pm)
[PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Mon Mar 3, 4:18 pm)
Re: [PATCH] cpuidle: avoid singing capacitors, Pavel Machek, (Mon Mar 3, 4:46 pm)
Re: [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Mon Mar 3, 5:03 pm)
Re: [PATCH] cpuidle: avoid singing capacitors, Pavel Machek, (Mon Mar 3, 5:08 pm)
RE: [PATCH] cpuidle: avoid singing capacitors, Pallipadi, Venkatesh, (Mon Mar 3, 5:14 pm)
Re: [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Mon Mar 3, 5:17 pm)
RE: [PATCH] cpuidle: avoid singing capacitors, Pallipadi, Venkatesh, (Mon Mar 3, 6:04 pm)
Re: [PATCH] cpuidle: avoid singing capacitors, Andi Kleen, (Mon Mar 3, 7:09 pm)
RE: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pallipadi, Venkatesh, (Tue Mar 4, 3:01 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Sun Mar 9, 10:16 am)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Tue Mar 11, 3:51 am)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Tue Mar 11, 11:20 am)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Tue Mar 11, 1:31 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Mon Mar 10, 8:49 am)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Len Brown, (Wed Mar 12, 3:11 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Thu Mar 13, 12:34 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Fri Mar 14, 3:40 pm)
RE: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pallipadi, Venkatesh, (Fri Mar 14, 5:15 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Fri Mar 14, 8:41 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Thu Mar 13, 1:49 pm)
RE: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pallipadi, Venkatesh, (Thu Mar 13, 12:47 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Thu Mar 13, 1:44 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Mon Mar 10, 9:29 am)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Henrique de Moraes Holschuh..., (Sun Mar 9, 3:30 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Henrique de Moraes Holschuh..., (Sun Mar 9, 4:41 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Henrique de Moraes Holschuh..., (Sun Mar 9, 4:54 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Rafael J. Wysocki, (Sun Mar 9, 2:19 pm)
Re: [linux-pm] [PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Wed Mar 5, 12:53 pm)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Andi Kleen, (Mon Mar 3, 8:36 am)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Lee Revell, (Sat Mar 1, 10:27 pm)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Sun Mar 2, 10:17 am)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Sat Mar 1, 9:40 am)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Lennart Sorensen, (Fri Feb 29, 5:44 pm)
Re: [RFC][PATCH] cpuidle: avoid singing capacitors, Pierre Ossman, (Sat Mar 1, 8:31 am)