No c2-c7 states on core i7

Erik Slagter
2009-11-20T14:41:56Z

Hi there,

I already put on my flame retardant underwear, I know this is a FAQ, but
I really need a bit of a jumpstart, google won't tell me where to start,
so please be gentle ;-)

I bought a Gigabyte EX58-UD3R motherboard recently and put a core i7 920
on it. This seems to be a fairly common combination.

In short: I know the core i7 does implement several C-states, from
memory c1, c1e, c3, c6 and c7. Linux (vanilla, 2.6.31.6) does not
recognise any of them.

The kernel configuration is very similar to the one I am running on my
laptop with a recent mobile core2duo processor, and this one reports
C1,C2,C3 (although it should also report yet another C state, but I
guess that one is disabled by the bios or something alike).

Is this normal (WIP?)?

If not, where should I start debugging? I know there is "something" with
decoding the DSDT table, but what should I look for?

I seem to remember that with an earlier linux version (before 2.6.30.5)
it actually did work, but I am not completely sure.

Thanks for your help in advance!

Additional info that might be useful:

- all options related to power saving and C-states are ENABLED in the BIOS
- all options related to power management and idling are ENABLED in the
kernel, which runs in 64 bits mode
- frequency switching runs fine using acpi-cpufreq and ondemand governor

If I compare the dmesg from both computers after booting, the laptop
says "ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3])" at some point,
this message is not output at all by the server.

Output from proc/acpi/processor/CPU0/info
processor id: 0
acpi id: 0
bus mastering control: yes
power management: no
throttling control: yes
limit interface: yes

Output from proc/acpi/processor/CPU0/power
active state: C0
max_cstate: C8
maximum allowed latency: 2000000000 usec
states:
C1: type[C1] promotion[--] demotion[--]
latency[000] usage[00000000] duration[00000000000000000000]