Bug 16513

Summary: CPUs doesn't stay in deepest C-state with intel_idle
Product: Power Management Reporter: Daniel Eklöf (daniel)
Component: intel_idleAssignee: power-management_intel_idle (power-management_intel_idle)
Status: CLOSED UNREPRODUCIBLE    
Severity: normal CC: akpm
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.35 Subsystem:
Regression: No Bisected commit-id:
Attachments: Kernel log
Powertop output w/ intel-idle
Powertop output w/ acpi-idle

Description Daniel Eklöf 2010-08-04 10:55:17 UTC
Created attachment 27340 [details]
Kernel log

When using the new intel-idle driver, the CPUs never reach 100% residency in the deepest C-state. Instead, it's spread across C1-C4 (C4 being the deepest C-state). Powertop also shows a large number of wakeups:

Cn	          Avg residency
C0 (cpu running)        ( 0.0%)
polling		  0.0ms ( 0.0%)
C1 mwait	 61.8ms (24.5%)
C2 mwait	  5.3ms (34.8%)
C4 mwait	  0.8ms (41.1%)
P-states (frequencies)
  1.67 Ghz     2.6%
  1333 Mhz     0.1%
  1000 Mhz    97.4%
Wakeups-from-idle per second : 595.0	interval: 15.0s
no ACPI power usage estimate available
Top causes for wakeups:
  42.6% ( 12.2)   [extra timer interrupt]
  14.0% (  4.0)   [kernel core] usb_hcd_poll_rh_status (rh_timer_func)
   9.8% (  2.8)   [i915] <interrupt>


When using the ACPI driver, things are also somewhat interresting; directly after boot, there are no C-states available. After a couple of minutes (~3 minutes), the C-states become available (only up to C2 when running on AC, C4 when running on battery). At this point one can also see a large drop in power usage.

So, to summarize:
acpi-idle: works, but it takes ~3 minutes for the C-states to become available after boot
intel-idle: C-states are available right away, but something seems to be interferring, and we are never able to stay in the deepest C-state (regardless of how long time I wait).

intel-idle output:
Aug  4 12:16:07 lappy kernel: intel_idle: MWAIT substates: 0x20220
Aug  4 12:16:07 lappy kernel: intel_idle: v0.4 model 0x1C
Aug  4 12:16:07 lappy kernel: intel_idle: lapic_timer_reliable_states 0x6
Aug  4 12:16:07 lappy kernel: ACPI: acpi_idle yielding to intel_idle

Hardware: Samsung N150 (Atom N450), BIOS v.08JI
Comment 1 Daniel Eklöf 2010-08-04 10:56:09 UTC
Created attachment 27341 [details]
Powertop output w/ intel-idle
Comment 2 Daniel Eklöf 2010-08-04 10:56:49 UTC
Created attachment 27342 [details]
Powertop output w/ acpi-idle
Comment 3 Andrew Morton 2010-08-04 22:37:41 UTC
Recategorised to PM, assigned to Len.
Comment 4 Len Brown 2010-10-19 03:42:50 UTC
can you reproduce this issue with 2.6.36?
Comment 5 Daniel Eklöf 2010-10-19 09:22:50 UTC
No, I can't. Tested with 2.6.36-rc8 and I get 99.9% residency in C4, and a wakeup count below 10. I.e. everything is as it should be.

Looks like we can close this one!