You are not logged in.

#1 2013-05-06 01:54:19

blackbeard
Member
Registered: 2013-05-06
Posts: 2

acpi idle missing c-states on AMD piledriver (FX-6300)

I am trying to tweak my system for power efficency and was therefore hoping to enable the C6 (deep sleep) state. However, the kernel acpi_idle driver only seems to be registering states C0 to C2. Is there any way to enable the extra c-states? Please see below for the output of some relevant (perhaps) commands. Thanks in advance.

Hardware:

- AMD FX-6300
- Asus M5A97 LE R2.0

Bios settings:

- C6 enabled
- C1e enabled

Kernel:

root / #  uname -r
3.8.10-1-ARCH

cpupower output:

root / #  cpupower monitor
    |Mperf               || Idle_Stats         
CPU | C0   | Cx   | Freq || POLL | C1   | C2   
   0|  0.18| 99.82|  1400||  0.00|  0.00| 99.84
   1|  0.09| 99.91|  1402||  0.00|  0.00| 99.90
   2|  0.13| 99.87|  1396||  0.00|  0.00| 99.88
   3|  0.13| 99.87|  1402||  0.00|  0.00| 99.87
   4|  0.09| 99.91|  1398||  0.00|  0.00| 99.91
   5|  0.02| 99.98|  1397||  0.00|  0.00| 99.99
root / #  cpupower monitor -l
Monitor "Mperf" (3 states) - Might overflow after 922000000 s
C0	[T] -> Processor Core not idle
Cx	[T] -> Processor Core in an idle state
Freq	[T] -> Average Frequency (including boost) in MHz
Monitor "Idle_Stats" (3 states) - Might overflow after 4294967295 s
POLL	[T] -> CPUIDLE CORE POLL IDLE
C1	[T] -> <null>
C2	[T] -> ACPI IOPORT 0x815

cpuidle driver:

root / #  cat /sys/devices/system/cpu/cpuidle/current_driver 
acpi_idle

Offline

#2 2013-05-08 22:09:50

blackbeard
Member
Registered: 2013-05-06
Posts: 2

Re: acpi idle missing c-states on AMD piledriver (FX-6300)

Decompiled DSDT as detailed on the wiki and it seems to missing the _CST definitions. I will write to asus before attempting to fix myself. Here is what it says in the AMD tech docs:

2.5.3.6.1 _CST
The _CST object should be generated for each core as follows:
• Count = 1.
• Register = MSRC001_0073[CstateAddr] + 1.
• Type = 2.
• Latency = 100.
• Power =0.

Should all the c-states be labeled with the same latency and power (0.)? If not, any idea where I can find the correct values?

Last edited by blackbeard (2013-05-08 22:20:26)

Offline

#3 2013-05-18 20:28:46

Swanny
Member
Registered: 2013-05-18
Posts: 1

Re: acpi idle missing c-states on AMD piledriver (FX-6300)

It's probably fine.

The ACPI standard only defines four CPU power states from C0 to C3. However any deeper states such as C1E, C4, C5, and C6 are known only to the hardware and are automatically used when idling, so the operating system only sees them included in C2 or C3. As AMD C1E is essentially the same as C3 is probably why it's no longer included. However for Intel there is the intel_idle module which adds hardcoded knowledge of their CPUs deeper CPU power states.

The cpupower monitor has "Fam_14h" support which can show time spent in C6 sleep which works for my E-450 but not my A10-5700 or your FX-6300 which are "Fam-15h". We just need someone to update it!

The _CST object is defined in the SSDT tables rather than DSDT tables.

Offline

Board footer

Powered by FluxBB