bug in interrupt handling
Santiago Gala
sgala at apache.org
Sun May 20 13:58:45 PDT 2007
El dom, 20-05-2007 a las 10:59 -0700, Arjan van de Ven escribió:
> Santiago Gala wrote:
> > I see that in most if not all x86* machines interrupt 0 is assigned to
> > the timer interrupt, not sure about other architectures.
> >
> > A test in http://powertop.googlecode.com/svn/trunk/powertop.c
> >
> >
> > if (nr > 0 && delta > 0)
> > push_line(line, delta);
> >
> > makes it skip interrupt 0. While it is designed to skip over NMI, LOC,
> > etc., it is missing a valid value.
> >
>
> the irq 0 is skipped on purpose; at least if you have a NO_HZ kernel,
> any wakeup there would be double counted by any of the other timers in
> the kernel.... so at minimum I'd have to subtract all known timers
> from it first. Hmmm.. I'll look into that.
Didn't know this, it seems relevant for machines like mine (no NO_HZ),
and I've seen comments on IRC along the lines of "will CONFIG_HZ=1000 be
a problem?..." Maybe the test could be something like if(nonohz && delta
>0), or something similar, so that it gets added only for configuration
without CONFIG_NO_HZ
BTW, I commuted to Madrid today, and using powertop I was able to keep
my machine at ~10W, which was actually very useful, and about 2-3W less
than before using it. I'm waiting for NO_HZ landing at x86_64. :)
Thanks and keep with the good work!
Santiago
More information about the Power
mailing list