All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Andrew McNamara <andrewm@connect.com.au>
Cc: Jes Sorensen <jes@sunsite.dk>, Chris Wedgwood <cw@f00f.org>,
	linux-kernel@vger.kernel.org
Subject: Re: how to tell Linux *not* to share IRQs ?
Date: 08 Aug 2001 05:14:07 -0600	[thread overview]
Message-ID: <m1wv4eu7ls.fsf@frodo.biederman.org> (raw)
In-Reply-To: <20010808000528.DB146BF02@wawura.off.connect.com.au>
In-Reply-To: <20010808000528.DB146BF02@wawura.off.connect.com.au>

Andrew McNamara <andrewm@connect.com.au> writes:

> >Chris> Yes, drivers need to check their hardware devices and
> >Chris> acknowledge whether or not it's was their interrupt or not.  It
> >Chris> sounds terrible but even with many thousands of interrupts per
> >Chris> second the cost doesn't seem to be that high.
> >
> >Not only is this the case, it's also the only sane thing to do <tm>,
> >any device driver should check the status of the hardware it is
> >serving before doing anything else.
> 
> That's not necessarily the case - the problem arises due the
> limitations of PC interrupt routing. In an ideal world, the
> interrupting device would be able to be uniquely identified, rather
> than having to poll every device sharing that interrupt.

Interrupts are inherently race, so you still want to check your device
status, even if you get an interrupt.  Having a smaller set of devices
to poll to see if there is any work to do is of course good.
 
> The problem is largely historical - each interrupt traditionally had a
> physically line associated with it, and lines on your backplane were a
> limited resource. 
> 
> If you were to do it again these days, you might have some sort of
> shared serial bus, so devices could give detailed data to the cpu
> (not only to uniquely identify the interrupting device, but also
> identify sub-devices - say a USB peripheral).

I don't know.  The ISA bus was structured somewhat like you describe
and that is what is truly legacy at the moment.  I suspect
the one line per interrupt came of wanting to reduce latencies.

Though when you start think of things like the current ioapics where
you do get a serial bus for your interrupts anyway.  A shared serial
bus probably makes sense.

On the other side I think having drivers that can share interupts is a
very healthy thing so I'm not certain I would want to discourage that.

Eric

  reply	other threads:[~2001-08-08 11:21 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-25 23:23 how to tell Linux *not* to share IRQs ? Scott McDermott
2001-07-25 23:37 ` Alan Cox
2001-07-26  7:06   ` Andrew McNamara
2001-07-26  7:39     ` Chris Wedgwood
2001-08-07 15:09       ` Jes Sorensen
2001-08-08  0:05         ` Andrew McNamara
2001-08-08 11:14           ` Eric W. Biederman [this message]
2001-08-08 17:13           ` Mark H. Wood
2001-07-26  7:54     ` Francois Romieu
  -- strict thread matches above, loose matches on Subject: below --
2001-08-08 19:03 Per Jessen
2001-08-08 19:19 ` Chris Meadors
2001-11-06 23:17   ` H. Peter Anvin
2001-08-09 14:27 ` Andreas Bombe

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=m1wv4eu7ls.fsf@frodo.biederman.org \
    --to=ebiederm@xmission.com \
    --cc=andrewm@connect.com.au \
    --cc=cw@f00f.org \
    --cc=jes@sunsite.dk \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.