Re: [REGRESSION 2.6.28-rc2-git3] lots of extra timer interrupts costing 2W

From: Elias Oltmanns
Date: Fri Oct 31 2008 - 06:21:57 EST


Theodore Tso <tytso@xxxxxxx> wrote:
> On Wed, Oct 29, 2008 at 10:18:10PM -0400, Theodore Ts'o wrote:
>> I've noticed that sometime between 2.6.27-git7 and 2.6.28-rc2-git3,
>
>> powertop is reporting a huge number of excess timer interrupts on my
>> x61s laptop:
>>
>> Wakeups-from-idle per second : 617.8 interval: 3.1s
>> no ACPI power usage estimate available
>>
>> Top causes for wakeups:
>> 71.3% (543.7) <interrupt> : extra timer interrupt
>> 13.5% (103.0) <kernel core> : hrtimer_start_expires (tick_sched_timer)
>> 7.2% ( 55.0) <kernel IPI> : Rescheduling interrupts
>> 1.7% ( 13.0) gnome-terminal : hrtimer_start_expires (hrtimer_wakeup)
>> 1.4% ( 10.3) <interrupt> : PS/2 keyboard/mouse/touchpad
>> 1.1% ( 8.3) <interrupt> : ahci
>> 0.4% ( 3.3) multiload-apple : hrtimer_start_expires (hrtimer_wakeup)
>> 0.3% ( 2.7) Xorg : hrtimer_start (it_real_fn)
>>
>>
>> This is costing me an extra 2 Watts or so. Does this ring a bell with
>> anyone, before I start trying to bisect this problem?
>
> I found the problem via bisection. It's commit fb02fbc1, "NOHZ:
> restart tick device from irq_enter()".
>
> After bisecting the problem, I compiled v2.6.28-rc2 (with the attached
> .config file), verified that I saw the extra 500 or so timer
> interrupts, and then reverted the commit, and the extra timer
> interrupts went away. A more careful measurement of the power drain
> difference makes it appear to be more like 0.8 watts.

Strange, I can't reproduce this problem here (tested next-20081029 and
2.6.27.4 + some commits including the one in question). However, I'm
wondering whether this is simply due to a certain config option since
extra timer interrupts doesn't even show up in my powertop output. This
is with NO_HZ=y and HIGH_RES_TIMERS=y/n. Could SMP possibly make any
difference here? It's disabled in my config.

>
> This is on an Lenovo X61s laptop. I'm not sure that simply reverting
> the commit is the right fix, but it does seem to make the extra timer
> interrupts (and the resulting decrease in average C3 residency time)
> go away.

Well, I'd be rather unhappy, for obvious reasons, if this commit was
simply reverted. But, of course, something has got to be done about it.

Regards,

Elias
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/