public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Alan Cox <alan@redhat.com>, Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org
Subject: Re: [patch, -rc5-mm1] locking validator: special rule: 8390.c disable_irq()
Date: Sun, 04 Jun 2006 09:16:01 -0400	[thread overview]
Message-ID: <1149426961.27696.7.camel@localhost.localdomain> (raw)
In-Reply-To: <1149413649.3109.92.camel@laptopd505.fenrus.org>

On Sun, 2006-06-04 at 11:34 +0200, Arjan van de Ven wrote:
> On Sat, 2006-06-03 at 18:34 -0400, Steven Rostedt wrote:
> > On Sat, 2006-06-03 at 17:53 -0400, Alan Cox wrote:
> > > On Sat, Jun 03, 2006 at 10:37:01AM -0400, Steven Rostedt wrote:
> > > > Couldn't it be possible to have the misrouted irq function mark the
> > > > DISABLED_IRQ handlers as IRQ_PENDING?  Then have the enable_irq that
> > > > actually enables the irq to call the handlers with interrupts disabled
> > > > if the IRQ_PENDING is set?
> > > 
> > > We still have the ambiguity with disable_irq. Really we need to have
> > > disable_irq_handler(irq, handler)
> > 
> > Yeah, that does make sense, but I think the IRQ_PENDING idea works too.
> > This way disable_irq_handler doesn't need to mask the interrupt even
> > without the irqpoll and irqfixup.  Let the interrupt happen and just
> > skip those handlers that that are disabled.  Then when the handler is
> > re-enabled, then we can call the handler. Of course we would need a
> > enable_irq_handler too.
> > 
> > This would make the vortex card's disable_irq not hurt all the other
> > devices that share the irq with it.
> can't do that; if you get an irq anyway from the hardware you now have a
> screamer...... which is why vortex really needs to disable the irq at
> the hardware level.
> 

I woke up in the middle of the night last night, thinking about this. I
suddenly realized that this cant work with level interrupts.  Oh well,
if we lived in a world of edge only, then it could work. :-/

But still for the fixirq case, it might still be an option to delay the
handler.

But I'm not sure if I fully understand this misrouting irq.  Is it to
fix broken machines that trigger interrupts on the wrong line?  Or is
this some strange case that happens on normal setups?  If an irq does
get misrouted, and we happen to be in the disable_irq of that device
that had its irq misrouted, couldn't it cause a storm if we don't call
the handler for it?  So really disable_irq is broken for the misrouting
case, and perhaps needs to be replaced with a spin_lock_irqsave?

-- Steve

-- Steve


  reply	other threads:[~2006-06-04 13:16 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-31 20:02 [patch, -rc5-mm1] locking validator: special rule: 8390.c disable_irq() Ingo Molnar
2006-05-31 20:31 ` Arjan van de Ven
2006-05-31 21:27   ` Ingo Molnar
2006-05-31 21:41   ` Alan Cox
2006-05-31 21:43     ` Arjan van de Ven
2006-05-31 21:47       ` Ingo Molnar
2006-05-31 21:56         ` Arjan van de Ven
2006-05-31 22:00           ` Ingo Molnar
2006-05-31 22:02             ` Arjan van de Ven
2006-06-03 14:37           ` Steven Rostedt
2006-06-03 21:53             ` Alan Cox
2006-06-03 22:34               ` Steven Rostedt
2006-06-04  9:34                 ` Arjan van de Ven
2006-06-04 13:16                   ` Steven Rostedt [this message]
2006-06-04 15:38                     ` Alan Cox
2006-06-04 15:44                       ` Steven Rostedt
2006-06-04 16:10                     ` Alan Cox
2006-06-04 16:22                       ` Steven Rostedt
2006-06-04 21:26                         ` Alan Cox
2006-06-04 21:28                           ` Steven Rostedt
2006-06-04 21:44                             ` Ingo Molnar
2006-06-05  1:04                               ` Steven Rostedt
2006-06-06  3:33                               ` [PATCH -mm] misroute-irq: Don't call desc->chip->end because of edge interrupts Steven Rostedt
2006-06-06  4:20                                 ` Andrew Morton
2006-06-06 10:46                                   ` Steven Rostedt
2006-06-06  8:01                                 ` Ingo Molnar
2006-06-06 10:50                                   ` Steven Rostedt
2006-06-06 21:48                                     ` Andrew Morton
2006-06-06 21:50                                       ` Ingo Molnar
2006-06-06  3:49                               ` [RFC][PATCH -mm] postpone misrouted irqs when disabled Steven Rostedt
2006-06-01  9:46         ` [patch, -rc5-mm1] locking validator: special rule: 8390.c disable_irq() Alan Cox
2006-06-01 10:02           ` Ingo Molnar

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=1149426961.27696.7.camel@localhost.localdomain \
    --to=rostedt@goodmis.org \
    --cc=akpm@osdl.org \
    --cc=alan@redhat.com \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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