Re: IO-APIC on nforce2 [PATCH] + [PATCH] for nmi_debug=1 + [PATCH]for idle=C1halt, 2.6.5
From: Maciej W. Rozycki
Date: Thu Apr 29 2004 - 07:28:09 EST
On Thu, 29 Apr 2004, Jamie Lokier wrote:
> > Not necessarily related to the PSU, but the noise may actually be the
> > reason of spurious timer interrupts.
>
> With most device interrupts, additional spurious ones don't cause any
> malfunction because the driver's handler checks whether the device
> actually has a condition pending.
Note the 8254 timer uses edge-triggered interrupts and is just a square
wave signal. There's no acking to deassert the interrupt -- it goes away
spontaneously after a predefined time.
> This is the basis of shared interrupts, of course.
Yep, but the timer is non-shareable by definition.
> Is there any way we can check the timer itself to see whether an
> interrupt was caused by it, so that spurious timer interrupts are ignored?
This may be possible, but complicated and likely unreliable -- an I/O
APIC may deliver a spurious interrupt at the time a real one would be
probable and you can't check if a period between two consecutive timer
interrupts is appropriate without an additional time reference, which may
be unavailable (like the TSC).
Note the timer is special -- we don't really do any device handling, but
we want to get periodic interrupts at the right times to have a time
reference. Coalescing interrupts or discarding spurious ones, which is
normal and acceptable for regular devices, doesn't work here.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@xxxxxxxxxxxxx, PGP key available +
-
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/