Re: 2.6.35.4: intel_idle has reduced residency in high C states.

From: Len Brown
Date: Thu Sep 30 2010 - 18:09:24 EST


On Sun, 26 Sep 2010, Corrado Zoccolo wrote:

> Hi Len,
> I tested intel_idle on my Acer Aspire One netbook (Atom based), and
> got lower residency in high C states compared to acpi_idle:
> Immediately after boot, PowerTOP 1.11 reports for intel_idle:
> Your CPU supports the following C-states : C1 C2 C4
> Your BIOS reports the following C-states : C1 C2 C4
> Cn Avg residency
> C0 (cpu occupata) ( 2,3%)

Corrado,
differences in C2 vs C4 residency don't matter much
when when the CPU is buy (C0) for 2 or 3% of the time.

For an apples/apples comparison of intel_idle vs acpi_idle,
CONFIG_INTEL_IDLE=y and boot with and without
intel_idle.max_cstate=0 to run with acpi_idle
and intel_idle, respectively.

thanks,
-Len Brown, Intel Open Source Technology Center



> polling 0,0ms ( 0,0%)
> C1 mwait 54,4ms (57,3%)
> C2 mwait 1,7ms ( 2,8%)
> C4 mwait 3,1ms (37,6%)
> P-states (frequencies)
> 1,60 Ghz 0,0%
> 1333 Mhz 0,0%
> 1066 Mhz 0,0%
> 800 Mhz 100,0%
> Wakeups-from-idle per second : 149,4 interval: 15,0s
> no ACPI power usage estimate available
> Top causes for wakeups:
> 74,0% ( 98,5) <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
> 6,5% ( 8,7) <interrupt> : acpi
> 4,0% ( 5,3) <kernel core> : hrtimer_start (tick_sched_timer)
> 3,7% ( 4,9) <interrupt> : eth0
> 1,9% ( 2,5) X : __mod_timer (i915_hangcheck_elapsed)
> 1,5% ( 2,0) lxpanel : hrtimer_start_range_ns (hrtimer_wakeup)
> 1,3% ( 1,7) lxterminal : hrtimer_start_range_ns (hrtimer_wakeup)
> 1,0% ( 1,3) lxpanel : __mod_timer (process_timeout)
> 0,8% ( 1,1) <kernel IPI> : TLB shootdowns
> 0,8% ( 1,0) ifplugd : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,7% ( 0,9) X : queue_delayed_work (delayed_work_timer_fn)
>
> while for acpi_idle:
> Cn Avg residency
> C0 (cpu occupata) ( 2,1%)
> polling 0,0ms ( 0,0%)
> C1 halt 0,1ms ( 0,0%)
> C2 11,9ms (14,7%)
> C3 12,1ms (83,2%)
> P-states (frequencies)
> 1,60 Ghz 0,0%
> 1333 Mhz 0,0%
> 1066 Mhz 0,3%
> 800 Mhz 99,7%
> Wakeups-from-idle per second : 81,2 interval: 15,0s
> no ACPI power usage estimate available
> Top causes for wakeups:
> 60,3% ( 92,3) <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
> 12,4% ( 18,9) <interrupt> : extra timer interrupt
> 5,9% ( 9,0) <kernel IPI> : Rescheduling interrupts
> 5,6% ( 8,6) <interrupt> : acpi
> 3,4% ( 5,2) <interrupt> : eth0
> 2,7% ( 4,1) <kernel core> : hrtimer_start (tick_sched_timer)
> 1,6% ( 2,4) X : __mod_timer (i915_hangcheck_elapsed)
> 1,3% ( 2,0) lxpanel : hrtimer_start_range_ns (hrtimer_wakeup)
> 1,2% ( 1,8) lxpanel : __mod_timer (process_timeout)
> 1,1% ( 1,7) lxterminal : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,7% ( 1,0) ifplugd : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,6% ( 0,9) X : queue_delayed_work (delayed_work_timer_fn)
> 0,3% ( 0,5) <kernel core> : enqueue_task_rt (sched_rt_period_timer)
> 0,3% ( 0,5) <kernel IPI> : TLB shootdowns
>
> This may be unrelated, but I noticed that compared with 2.6.34, the
> load average immediately after boot is higher for 2.6.35.4 (and
> decreases more slowly). This gives a higher multiplier in the menu
> governor, so the residency numbers for 2.6.34 with acpi_idle are again
> different:
> Cn Avg residency
> C0 (cpu occupata) ( 3,2%)
> polling 0,0ms ( 0,0%)
> C1 halt 0,1ms ( 0,0%)
> C2 7,9ms (10,5%)
> C3 11,7ms (86,3%)
> P-states (frequencies)
> 1,60 Ghz 0,0%
> 1333 Mhz 0,0%
> 1066 Mhz 0,9%
> 800 Mhz 99,1%
> Wakeups-from-idle per second : 87,1 interval: 15,0s
> no ACPI power usage estimate available
> Top causes for wakeups:
> 67,1% (130,0) <kernel core> : hrtimer_start_range_ns (tick_sched_timer)
> 8,7% ( 16,9) <interrupt> : extra timer interrupt
> 6,5% ( 12,5) <kernel IPI> : Rescheduling interrupts
> 4,5% ( 8,7) <interrupt> : acpi
> 2,3% ( 4,5) <kernel core> : hrtimer_start (tick_sched_timer)
> 1,9% ( 3,7) <interrupt> : eth0
> 1,4% ( 2,7) X : __mod_timer (i915_hangcheck_elapsed)
> 1,0% ( 2,0) lxpanel : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,9% ( 1,8) lxpanel : __mod_timer (process_timeout)
> 0,9% ( 1,7) lxterminal : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,5% ( 1,0) ifplugd : hrtimer_start_range_ns (hrtimer_wakeup)
> 0,4% ( 0,8) <interrupt> : ehci_hcd:usb1, uhci_hcd:usb2,
> i915@pci:0000:00:02.0
> 0,4% ( 0,7) <interrupt> : ata_piix
> 0,4% ( 0,7) X : queue_delayed_work (delayed_work_timer_fn)
> The numbers for 2.6.34 look more sensible (avg residency in C2 << avg
> residency in C3), so it may be good to re-evaluate the factors in menu
> governor.
>
> Thanks,
> Corrado
>
> ---
> __________________________________________________________________________
>
> dott. Corrado Zoccolo             mailto:czoccolo@xxxxxxxxx
> PhD - Department of Computer Science - University of Pisa, Italy
> --------------------------------------------------------------------------
> The self-confidence of a warrior is not the self-confidence of the average
> man. The average man seeks certainty in the eyes of the onlooker and calls
> that self-confidence. The warrior seeks impeccability in his own eyes and
> calls that humbleness.
> Â Â Â Â Â Â Â Â Â Â Â Â Â Â ÂÂ Tales of Power - C. Castaneda
>