Re: [PATCH] I/O APIC: Timer through 8259A revamp

From: Maciej W. Rozycki
Date: Mon May 19 2008 - 09:59:04 EST

On Mon, 19 May 2008, Ingo Molnar wrote:

> > It works for my system, but it definitely requires much, much more
> > testing. The patch depends on patch-2.6.26-rc1-20080505-timer_ack-1
> > sent earlier.
> agreed, scary patch - but nice cleanups!

Well, I think somebody has to understand these pieces of code after all,
right? ;-)

> > Of course these "if (pin? != -1)" statements are useless (though
> > harmless) now, but I think that change deserves a separate patch not
> > to obfuscate changes to code which is obscure enough already.
> please send another patch for that. If you can think of a good way of

That's syntactic sugar -- I am not sure whether it's worth doing it yet.
I think let's test semantic changes first -- there may be more needed --
and once things have settled, fix up the syntax. That's boring enough it
can be done in 30 seconds :-) and can certainly happen before you push
changes to Linus.

> splitting up this patch into smaller units feel free to do that too ...

Well, actually the NMI failure clean-up and the associated
"timer_through_8259" variable can certainly be separate. They are a new
feature that builds on top of the clean-up and without them the fix is
consistent as well. I'll do that and see whether there is anything else
that could be split off.

Additionally I think the following enhancements should be done as the
next step:

1. Also mask LVT0/LVTPC entries as necessary when the NMI watchdog fails.

2. I think the 64-bit version wants the I/O APIC rerouting bits as well.
I recall they were needed for the affinity setting to work for the
timer interrupt -- has anybody tested it with the 64-bit architecture?

3. Nobody will probably care, but since we still claim support for the
i82489DX -- for this APIC the NMI return path for the watchdog should
reassert the motherboard NMI source through the mask register at the
I/O port 0x80 like it is done for the other reasons.

In case somebody reading this is about to head for the skip now -- I am
still interested in test equipment for the case #2.

> Dangerous changes are much better if they happen in small incremental
> steps. (even if the sum of the changes is not any less dangerous - it
> just makes any trouble easier to bisect and fix)

Yes, of course. But sometimes they are not written in the order that
would make the split obvious from the beginning. ;-)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at