2010
09.01

First of all, check how many Cs state your system support.

acelan@acelan-nb ~ % cat /proc/acpi/processor/*/power
active state: C0
max_cstate: C8
maximum allowed latency: 749931 usec
states:
C1: type[C1] promotion[--] demotion[--] latency[001] usage[00034144] duration[00000000000000000000]
C2: type[C2] promotion[--] demotion[--] latency[001] usage[12402973] duration[00000000041800676364]
active state: C0
max_cstate: C8
maximum allowed latency: 749931 usec
states:
C1: type[C1] promotion[--] demotion[--] latency[001] usage[00017168] duration[00000000000000000000]
C2: type[C2] promotion[--] demotion[--] latency[001] usage[14252404] duration[00000000042491108472]

Then get fadt(Fixed ACPI Description table) and disassemble it
sudo cat /proc/acpi/fadt > /tmp/fadt.dat
acelan@acelan-nb ~ % iasl -d /tmp/fadt.dat

Intel ACPI Component Architecture
AML Disassembler version 20090521 [Jun 30 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 3.0a

Loading Acpi table from file /tmp/fadt.dat
Acpi Data Table [FACP] decoded, written to "/tmp/fadt.dsl"

Check those two values to see if C2 is smaller then 100(0×64) and C3 is smaller then 1000(0×3E8).
acelan@acelan-nb ~ % grep Latency /tmp/fadt.dsl
[060h 0096 2] C2 Latency : 0001
[062h 0098 2] C3 Latency : 03E9

If not, that means BIOS blocks the system switch to C2/C3 state.

In drivers/acpi/processor_idle.c:325 (linux 2.6.35)
/*
* FADT specified C2 latency must be less than or equal to
* 100 microseconds.
*/
if (acpi_gbl_FADT.C2latency > ACPI_PROCESSOR_MAX_C2_LATENCY) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"C2 latency too large [%d]\n", acpi_gbl_FADT.C2latency));
/* invalidate C2 */
pr->power.states[ACPI_STATE_C2].address = 0;
}

/*
* FADT supplied C3 latency must be less than or equal to
* 1000 microseconds.
*/
if (acpi_gbl_FADT.C3latency > ACPI_PROCESSOR_MAX_C3_LATENCY) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"C3 latency too large [%d]\n", acpi_gbl_FADT.C3latency));
/* invalidate C3 */
pr->power.states[ACPI_STATE_C3].address = 0;
}

No Comment.

Add Your Comment

Spam Protection by WP-SpamFree