Victor Yodaiken wrote:
>
> My belief is that shared interrupts are not very useful for RT systems - does anyone
> think otherwise?
>
Victor:
I guess I think otherwise, though only because we are limited to 4 PCI interrupts in
the PC platform. If the hardware provided a unique interrupt for each slot,
I would certainly like that better and it would also simplify the interrupt handler.
But if you need several devices, then you need them - and the only way to do
that is to share an interrupt or two. I sort of do it half way in that I only share
interrupts within rtl. I do not share interrupts between rtl and Linux, I don't think
I know how to do that and I would guess that to somehow pass on the interrupt to Linux
would depreciate system performance.
The current system that I am using for development (AMD K6-III 400 Mhz.) has 5 PCI
slots. The commonly available PC platforms have adequate computing power to readily
handle 4 ea. bt878 devices (in my application) and my systems may need as many as 20
or even 30 bt878 devices so economics dictate that I load up on devices within each
PC / bt878 cluster. I also need a network card in each PC, and as I mentioned,
I always place this network card in a slot that does not share an interrupt with my
driver / rtl process.
The only way that I can fit things in is to use an AGP video card. I don't really know
much about AGP, but it seems to work. If anyone knows of a good place to get some good
solid hardware information on AGP slots in the PC platform, I would be grateful for
the tip.
The next motherboard that I purchase I hope will have 6 PCI slots (and maybe 3 or 4
time the performance). In that case, my 4 ea. bt878 devices will have 2 interrupts
between them.
By the way, I love rtl and the rtl philosophy that real-time performance must
be first priority and features second. I am very grateful that rtl exists.
Wayne
> If an interrupt is shared between RT and non RT devices, the RT driver must do
>
> catch_interrupt:
> examine my device
> if interrupt is mine
> do regular handling
> else
> pend interrupt for Linux/BSD
> find the interrupting non-RT device
> clear device interrupt
> re-enable interrupts from this source
>
> The key point is that the RT driver needs to look at all non-RT devices
> in order to clear the interrupt source.
> This is not too hard, but it seems not very RT.
>
>
>
> On Sat, Jun 16, 2001 at 04:44:43PM +0200, Herman Bruyninckx wrote:
> > On Fri, 15 Jun 2001, Wayne E. Van Loon Sr. wrote:
> >
> > > Ken:
> > > IMHO, nothing off topic about your question. In my experience, there are
> > > 4 interrupts available to the PCI bus in PCs. If you have 5 or more PCI
> > > slots, then at least two slots have to share the same interrupt.
> > >
> > Deos this mean that you have to include code in _any_ device driver
> > you write that checks whether the interrupt was really for that device
> > drive? And that every interrupt on, let's say, interrupt 4 wakes up
> > the interrupt handlers of all the devices that got that interrupt
> > number assigned?
> >
> > Herman
> >
> > ----- End of forwarded message from [EMAIL PROTECTED] -----
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > --
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
>
> ----- End of forwarded message from [EMAIL PROTECTED] -----
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
----- End of forwarded message from [EMAIL PROTECTED] -----
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/