Re: irunning, width in bits.

2000-06-26 Thread Mike Smith

 
 What about shared interrupts? How are they going to be treated? With the
 spl leaving the arena it somehow looks feasible to run one interrupt
 source on two different threads if there are two pieces of hardware
 attached to the same interrupt line.
 
 From what I understood from dfr, when switching away from an interrupt
 handler it is converted into a full thread. When the second piece of
 hardware fires an interrupt it could then run at the same time.

I thought of this almost immediately - it's a bad idea though because it 
makes it hard to determine when to EOI an interrupt.

If you expect to perform significant processing in your interrupt 
handler, you should consider a taskq.



-- 
\\ Give a man a fish, and you feed him for a day. \\  Mike Smith
\\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime. \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: irunning, width in bits.

2000-06-26 Thread Nick Hibma

  From what I understood from dfr, when switching away from an interrupt
  handler it is converted into a full thread. When the second piece of
  hardware fires an interrupt it could then run at the same time.
 
 I thought of this almost immediately - it's a bad idea though because it 
 makes it hard to determine when to EOI an interrupt.
 
 If you expect to perform significant processing in your interrupt 
 handler, you should consider a taskq.

Right. It would be nice however to not have to go through the trouble of
moving things onto different interrupts. Current BIOS's do not quite let
you decide on which interrupt you would like to have assigned to the
various cards. It will spread them in some way, but that might not
spread the two high interrupt count cards onto separate interrupts. You
have to move the hardware around in the slots to get things sorted in
some cases.

I guess that the perfect solution is to be able to hardwire the PCI irqs
in some way once FreeBSD is doing the PnP resource allocation.

Nick
--
[EMAIL PROTECTED]
[EMAIL PROTECTED]  USB project
http://www.etla.net/~n_hibma/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: irunning, width in bits.

2000-06-26 Thread Garrett Wollman

On Mon, 26 Jun 2000 11:29:39 +0100 (BST), Nick Hibma [EMAIL PROTECTED] said:

 I guess that the perfect solution is to be able to hardwire the PCI irqs
 in some way once FreeBSD is doing the PnP resource allocation.

On typical non-SMP motherboards, the PCI IRQs are hard-wired on the
motherboard.  That is to say, INTA of slot 13 is wire-OR'd with INTB of
slot 14, is wire-OR'd with INTC of slot 15, is wire-OR'd with INTD of
slot 16, and oh, yeah, is also wire-OR'd with INTA of every
on-motherboard device.

SMP motherboards tend to be significantly better in this regard.

The PCI BIOS includes a function which gives you the map of how
interrupts are wired together.

-GAWollman

--
Garrett A. Wollman   | O Siem / We are all family / O Siem / We're all the same
[EMAIL PROTECTED]  | O Siem / The fires of freedom 
Opinions not those of| Dance in the burning flame
MIT, LCS, CRS, or NSA| - Susan Aglukark and Chad Irschick


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



irunning, width in bits.

2000-06-21 Thread Nick Hibma


What about shared interrupts? How are they going to be treated? With the
spl leaving the arena it somehow looks feasible to run one interrupt
source on two different threads if there are two pieces of hardware
attached to the same interrupt line.

From what I understood from dfr, when switching away from an interrupt
handler it is converted into a full thread. When the second piece of
hardware fires an interrupt it could then run at the same time.

Nick
--
[EMAIL PROTECTED]
[EMAIL PROTECTED]  USB project
http://www.etla.net/~n_hibma/



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: irunning, width in bits.

2000-06-21 Thread Matthew Dillon

(Moving this to freebsd-smp, Bcc'ing current)

:What about shared interrupts? How are they going to be treated? With the
:spl leaving the arena it somehow looks feasible to run one interrupt
:source on two different threads if there are two pieces of hardware
:attached to the same interrupt line.
:
:From what I understood from dfr, when switching away from an interrupt
:handler it is converted into a full thread. When the second piece of
:hardware fires an interrupt it could then run at the same time.
:
:Nick
:--
:[EMAIL PROTECTED]

This came up at the meeting and the conclusion was that shared
interrupts would run serially.  That is, each 'bit' in the cpl
(spl*(), also represented by ipending, the vector table dispatch, and
so forth) would be treated as a single interrupt thread.  If there 
are N interrupts hanging off that IRQ, then each of the N would
be run serially from a single interrupt thread.

This also came up a few months ago, you can probably find the discussion
in the archives.

What it comes down to is complexity and convenience.  In almost all
systems it is possible to rearrange the PCI boards such that you do
not have two critical interrupts on the same IRQ.

We are not precluding being able to schedule shared interrupts separately,
but if we are going to do it it will probably be much later when things
are more stable and not now.  The KISS principle applies here.

-Matt
Matthew Dillon 
[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message