public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: "Richard B. Johnson" <root@chaos.analogic.com>
Cc: Robert_Hentosh@Dell.com, Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: spurious 8259A interrupt
Date: Fri, 19 Mar 2004 14:39:49 +0000	[thread overview]
Message-ID: <20040319143948.GD3897@mail.shareable.org> (raw)
In-Reply-To: <Pine.LNX.4.53.0403190825070.929@chaos>

Richard B. Johnson wrote:
> > For those rare occasions when an interrupt handler wants to
> > re-enable interrupts (sti), _then_ it could mask the interrupt
> > that called the handler.
>
> It would work. However, the driver would then have to "know"
> if the interrupt came from IO-APIC or from the 8259. It also
> would have to "know" what IRQ it was actually using, etc.,

The generic interrupt handlers in Linux _do_ know all that.  They
need to, to mask the interrupt :)

The driver would not need to know: a global per-cpu variable can keep
track of where the most recent interrupt came from.

> So, all the dirty details were put in the kernel code so that the
> ISR only needs to know it was called as a result of an interrupt.

Yes, but that doesn't explain the masking.  It explains why there are
generic interrupt handlers (which know about the 8259, various APIC
etc.) and the driver interrupt handlers.

> There is no problem with masking ON/OFF the interrupt
> input to the 8259, In fact, this can be used to generate
> another (unreliable) edge if the IRQ line is still asserted.

No, there is no problem.  But there is a performance impact.  Masking
and unmasking the 8259 is an I/O operation which may be quite slow.

If we don't need it, why do we take the performance hit?

> The IRQ7 spurious is usually an artifact of a crappy motherboard
> design [+ good explanation].

Thanks.  That was very informative.

-- Jamie

  reply	other threads:[~2004-03-19 14:39 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-16 20:32 spurious 8259A interrupt Robert_Hentosh
2004-03-19 13:06 ` Jamie Lokier
2004-03-19 13:16   ` Russell King
2004-03-19 13:39     ` Jamie Lokier
2004-03-19 14:04       ` Anton Blanchard
2004-03-19 14:56         ` Jamie Lokier
2004-03-19 13:48   ` Richard B. Johnson
2004-03-19 14:39     ` Jamie Lokier [this message]
2004-03-21 17:58     ` Hans-Peter Jansen
2004-03-22  9:12       ` Maciej W. Rozycki
2004-03-22 12:29       ` Richard B. Johnson
2004-03-24 15:28         ` Jamie Lokier
2004-03-24 15:50           ` Gabriel Paubert
2004-03-24 15:57           ` Richard B. Johnson
2004-03-19 13:28 ` Maciej W. Rozycki
2004-03-19 22:01   ` Guennadi Liakhovetski
2004-03-22  9:02     ` Maciej W. Rozycki
2004-03-22 21:16       ` Guennadi Liakhovetski
2004-03-22 22:13         ` Richard B. Johnson
2004-03-22 23:09           ` Guennadi Liakhovetski
2004-03-22 23:38             ` Richard B. Johnson
2004-03-23 10:32               ` Maciej W. Rozycki
2004-03-23 10:42             ` Maciej W. Rozycki
2004-03-23 21:10               ` Guennadi Liakhovetski
2004-03-23 10:29           ` Maciej W. Rozycki
2004-03-23 10:26         ` Maciej W. Rozycki
  -- strict thread matches above, loose matches on Subject: below --
2004-03-16 18:35 Emmanuel Fleury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040319143948.GD3897@mail.shareable.org \
    --to=jamie@shareable.org \
    --cc=Robert_Hentosh@Dell.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=root@chaos.analogic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox