mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Scott Wood <scott@timesys.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Scott Wood <scott@timesys.com>,
	linux-kernel@vger.kernel.org,
	"La Monte H.P. Yarroll" <piggy@timesys.com>,
	Manas Saksena <manas.saksena@timesys.com>
Subject: Re: [patch] IRQ threads
Date: Thu, 29 Jul 2004 16:21:00 -0400	[thread overview]
Message-ID: <20040729202100.GA28507@yoda.timesys> (raw)
In-Reply-To: <20040729193341.GA27057@elte.hu>

On Thu, Jul 29, 2004 at 09:33:41PM +0200, Ingo Molnar wrote:
> 
> * Scott Wood <scott@timesys.com> wrote:
> 
> > > Also, why the enable_irq() change? 
> > 
> > If you mean the do_startup_irq() change, [...]
> 
> i mean the change below - why do irqthreads necessiate it?

The intent is to make enable_irq() robust against calls while the
thread is still running/pending (such as if the thread has lower
priority than the task that calls enable_irq()).  This implies that
the preceding disable was of the _nosync() variety.

I believe we saw drivers/net/8390.c doing this, and it was causing an
interrupt storm because, at the time (this was over a year ago),
actionless irqs (which this IRQ was, because the IRQ was still in
progress) had end() called, unmasking it again.  The IRQ was level
triggered, and thus the handler never got a chance to run.

That wouldn't happen with the current code, because it checks for
THREADPENDING || THREADRUNNING before calling end() in
really_do_IRQ(), so now all the check does is save the wasted time of
one bad interrupt each time it happens.

-Scott

  reply	other threads:[~2004-07-29 20:21 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-27 22:50 Scott Wood
2004-07-28  6:27 ` Ingo Molnar
2004-07-28 15:38   ` Karim Yaghmour
2004-07-28 16:01     ` Karim Yaghmour
2004-07-28 21:23   ` Bill Huey
2004-07-28 21:35     ` Scott Wood
2004-07-29 21:08       ` Bill Huey
2004-07-29 22:44       ` Ingo Molnar
2004-07-28 23:24   ` Scott Wood
2004-07-28  8:10 ` Ingo Molnar
2004-07-28 23:12   ` Scott Wood
2004-07-29 19:33     ` Ingo Molnar
2004-07-29 20:21       ` Scott Wood [this message]
2004-07-29 21:12         ` Alan Cox
2004-07-28 15:45 ` Karim Yaghmour
2004-07-28 18:28   ` Lee Revell
2004-07-28 19:12     ` Karim Yaghmour
2004-07-28 19:33       ` Lee Revell
2004-07-28 19:57         ` Karim Yaghmour
2004-07-28 20:35           ` Lee Revell
2004-07-28 21:15             ` Karim Yaghmour
2004-07-28 21:43               ` Lee Revell
2004-07-28 21:38                 ` Karim Yaghmour
2004-07-28 20:21         ` Bill Huey
2004-07-28 20:42           ` Lee Revell
2004-07-28 20:46             ` Bill Huey
2004-07-28 21:48           ` Karim Yaghmour
2004-07-28 22:30             ` Bill Huey
2004-07-28 22:03           ` Philippe Gerum
2004-07-29 20:33 Albert Cahalan

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=20040729202100.GA28507@yoda.timesys \
    --to=scott@timesys.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manas.saksena@timesys.com \
    --cc=mingo@elte.hu \
    --cc=piggy@timesys.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

all inboxes | Powered by JetHome®