intel_idle: Add CPU model 54 (Atom N2000 series)
PATCH 1/1 intel_idle: Add CPU model 54 (Atom N2000 series)
From: Jan Kiszka <[email protected]>
Add CPU ID for Atom N2600/N2800 processors. Datasheets indicate support for this, detailed information about potential quirks or limitations are missing, though. So we just reuse the definition for the previous ATOM series. Tests on N2800 systems showed that this addition is fine an can reduce power consumption by about 0.25 W (personally confirmed on Intel DN2800MT).
--- drivers/idle/intel_idle.c | 1 + 1 file changed, 1 insertion(+)
drivers/idle/intel_idle.c +1 -0
@@ -503,6 +503,7 @@ static const struct x86_cpu_id intel_idle_ids[] = {ICPU (0x2f , idle_cpu_nehalem),ICPU (0x2a , idle_cpu_snb),ICPU (0x2d , idle_cpu_snb), +ICPU (0x36 , idle_cpu_atom),ICPU (0x3a , idle_cpu_ivb),ICPU (0x3e , idle_cpu_ivb), ICPU(0x3c, idle_cpu_hsw),
Quoted 10 lines · On Sat, 25 Jan 2014 22:24:22 +0100 Jan Kiszka <[email protected]> wrote:
From: Jan Kiszka <[email protected]>
Add CPU ID for Atom N2600/N2800 processors. Datasheets indicate support for this, detailed information about potential quirks or limitations are missing, though. So we just reuse the definition for the previous ATOM series. Tests on N2800 systems showed that this addition is fine an can reduce power consumption by about 0.25 W (personally confirmed on Intel DN2800MT).
Signed-off-by Jan Kiszka <[email protected]>
Len - what's going on with this, and with the other identical patches people have posted ? This still doesn't seem to be in -next which leaves the various Cedartrail platforms still not covered by intel_idle. Likewise the same with Oaktrail, despite patches being submitted several times over the past two years ?
Alan
Len Brown
reviewerPlease send the output of these two command before and after the patch:
dmesg | grep idle
grep . /sys/devices/system/cpu/cpu0/cpuidle/*/*
How did you measure power on the the DN2800MT, and on what workload?
thanks,
-Len Brown, Intel Open Source Technology Center
Quoted 4 lines · Len Brown
Please send the output of these two command before and after the patch:
dmesg | grep idle
grep ./sys/devices/system/cpu/cpu0/cpuidle/*/*
Before:
# dmesg | grep idle [ 0.648783] cpuidle: using governor ladder [ 0.648787] cpuidle: using governor menu [ 1.053215] intel_idle: does not run on family 6 model 54 [ 3.285430] ACPI: acpi_idle registered with cpuidle # grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 /sys/devices/system/cpu/cpu0/cpuidle/state0/time:443 /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:5 /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:ACPI FFH INTEL MWAIT 0x0 /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:1 /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1 /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/time:420944 /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:1798 /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:ACPI FFH INTEL MWAIT 0x10 /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:20 /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2 /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/time:119479360 /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:32863 /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:ACPI FFH INTEL MWAIT 0x30 /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:100 /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C3 /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/time:1673 /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:7 /sys/devices/system/cpu/cpu0/cpuidle/state4/desc:ACPI FFH INTEL MWAIT 0x52 /sys/devices/system/cpu/cpu0/cpuidle/state4/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/latency:140 /sys/devices/system/cpu/cpu0/cpuidle/state4/name:C4 /sys/devices/system/cpu/cpu0/cpuidle/state4/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/time:125622 /sys/devices/system/cpu/cpu0/cpuidle/state4/usage:63
After:
# dmesg | grep idle [ 0.244640] cpuidle: using governor ladder [ 0.244645] cpuidle: using governor menu [ 0.654351] intel_idle: MWAIT substates: 0x3020220 [ 0.654355] intel_idle: v0.4 model 0x36 [ 0.654359] intel_idle: lapic_timer_reliable_states 0xffffffff # grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 /sys/devices/system/cpu/cpu0/cpuidle/state0/time:572 /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:12 /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:MWAIT 0x00 /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:10 /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1E-ATM /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/time:722013 /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:3132 /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:MWAIT 0x10 /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:20 /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2-ATM /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/time:4512127 /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:9147 /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:MWAIT 0x30 /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:100 /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C4-ATM /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/time:1996954 /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:2696 /sys/devices/system/cpu/cpu0/cpuidle/state4/desc:MWAIT 0x52 /sys/devices/system/cpu/cpu0/cpuidle/state4/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/latency:140 /sys/devices/system/cpu/cpu0/cpuidle/state4/name:C6-ATM /sys/devices/system/cpu/cpu0/cpuidle/state4/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/time:266926331 /sys/devices/system/cpu/cpu0/cpuidle/state4/usage:73695
Quoted 2 lines
How did you measure power on the the DN2800MT, and on what workload?
I measured the input current of the board @12V. In both cases, the system was idle in single-user mode, practically no processes running.
Jan
Quoted 94 lines · Jan Kiszka
Quoted 4 lines · Len Brown
Please send the output of these two command before and after the patch:
dmesg | grep idle
grep ./sys/devices/system/cpu/cpu0/cpuidle/*/*Before:
# dmesg | grep idle [ 0.648783] cpuidle: using governor ladder [ 0.648787] cpuidle: using governor menu [ 1.053215] intel_idle: does not run on family 6 model 54 [ 3.285430] ACPI: acpi_idle registered with cpuidle # grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 /sys/devices/system/cpu/cpu0/cpuidle/state0/time:443 /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:5 /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:ACPI FFH INTEL MWAIT 0x0 /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:1 /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1 /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/time:420944 /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:1798 /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:ACPI FFH INTEL MWAIT 0x10 /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:20 /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2 /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/time:119479360 /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:32863 /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:ACPI FFH INTEL MWAIT 0x30 /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:100 /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C3 /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/time:1673 /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:7 /sys/devices/system/cpu/cpu0/cpuidle/state4/desc:ACPI FFH INTEL MWAIT 0x52 /sys/devices/system/cpu/cpu0/cpuidle/state4/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/latency:140 /sys/devices/system/cpu/cpu0/cpuidle/state4/name:C4 /sys/devices/system/cpu/cpu0/cpuidle/state4/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/time:125622 /sys/devices/system/cpu/cpu0/cpuidle/state4/usage:63After:
# dmesg | grep idle [ 0.244640] cpuidle: using governor ladder [ 0.244645] cpuidle: using governor menu [ 0.654351] intel_idle: MWAIT substates: 0x3020220 [ 0.654355] intel_idle: v0.4 model 0x36 [ 0.654359] intel_idle: lapic_timer_reliable_states 0xffffffff # grep . /sys/devices/system/cpu/cpu0/cpuidle/*/* /sys/devices/system/cpu/cpu0/cpuidle/state0/desc:CPUIDLE CORE POLL IDLE /sys/devices/system/cpu/cpu0/cpuidle/state0/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/latency:0 /sys/devices/system/cpu/cpu0/cpuidle/state0/name:POLL /sys/devices/system/cpu/cpu0/cpuidle/state0/power:4294967295 /sys/devices/system/cpu/cpu0/cpuidle/state0/time:572 /sys/devices/system/cpu/cpu0/cpuidle/state0/usage:12 /sys/devices/system/cpu/cpu0/cpuidle/state1/desc:MWAIT 0x00 /sys/devices/system/cpu/cpu0/cpuidle/state1/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/latency:10 /sys/devices/system/cpu/cpu0/cpuidle/state1/name:C1E-ATM /sys/devices/system/cpu/cpu0/cpuidle/state1/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state1/time:722013 /sys/devices/system/cpu/cpu0/cpuidle/state1/usage:3132 /sys/devices/system/cpu/cpu0/cpuidle/state2/desc:MWAIT 0x10 /sys/devices/system/cpu/cpu0/cpuidle/state2/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/latency:20 /sys/devices/system/cpu/cpu0/cpuidle/state2/name:C2-ATM /sys/devices/system/cpu/cpu0/cpuidle/state2/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state2/time:4512127 /sys/devices/system/cpu/cpu0/cpuidle/state2/usage:9147 /sys/devices/system/cpu/cpu0/cpuidle/state3/desc:MWAIT 0x30 /sys/devices/system/cpu/cpu0/cpuidle/state3/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/latency:100 /sys/devices/system/cpu/cpu0/cpuidle/state3/name:C4-ATM /sys/devices/system/cpu/cpu0/cpuidle/state3/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state3/time:1996954 /sys/devices/system/cpu/cpu0/cpuidle/state3/usage:2696 /sys/devices/system/cpu/cpu0/cpuidle/state4/desc:MWAIT 0x52 /sys/devices/system/cpu/cpu0/cpuidle/state4/disable:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/latency:140 /sys/devices/system/cpu/cpu0/cpuidle/state4/name:C6-ATM /sys/devices/system/cpu/cpu0/cpuidle/state4/power:0 /sys/devices/system/cpu/cpu0/cpuidle/state4/time:266926331 /sys/devices/system/cpu/cpu0/cpuidle/state4/usage:73695Quoted 1 line
Quoted 8 lines
Quoted 1 line
How did you measure power on the the DN2800MT, and on what workload?
I measured the input current of the board @12V. In both cases, the system was idle in single-user mode, practically no processes running.
Jan
Was this answering your questions sufficiently? Can it be merged?
Jan
Applied.
Note that the difference that will be noticed most will be that ACPI on this kind of box typically offers the deepest C-state only when on DC, and disables it on DC. intel_idle offers it no matter if the box is on AC or DC.
thanks,
-Len Brown, Intel Open Source Technology Center
Quoted 28 lines · Jan Kiszka
From: Jan Kiszka <[email protected]>
Add CPU ID for Atom N2600/N2800 processors. Datasheets indicate support for this, detailed information about potential quirks or limitations are missing, though. So we just reuse the definition for the previous ATOM series. Tests on N2800 systems showed that this addition is fine an can reduce power consumption by about 0.25 W (personally confirmed on Intel DN2800MT).
Signed-off-by Jan Kiszka <[email protected]>--- drivers/idle/intel_idle.c | 1 + 1 file changed, 1 insertion(+)drivers/idle/intel_idle.c +1
-0@@ -503,6 +503,7 @@ static const struct x86_cpu_id intel_idle_ids[] = {ICPU (0x2f , idle_cpu_nehalem),ICPU (0x2a , idle_cpu_snb),ICPU (0x2d , idle_cpu_snb), +ICPU (0x36 , idle_cpu_atom),ICPU (0x3a , idle_cpu_ivb),ICPU (0x3e , idle_cpu_ivb), ICPU(0x3c, idle_cpu_hsw),
Signature · 1 line
Len Brown, Intel Open Source Technology Center