In article <[EMAIL PROTECTED]>,
Brendan Cully  <[EMAIL PROTECTED]> wrote:
>
> 16:        674        665   IO-APIC-level  aic7xxx, aic7xxx, Intel EtherExpress Pro 
>10/100 Ethernet

Yes, not nice.  It would be better to spread the interrupts out a bit,
which might make Linux able to then do them in parallel etc. 

>What bugs me is interrupt 16. I've got a lot of my machine on a UDMA
>ide drive (vs my ancient, slow 8-bit SCSI drive), and my LAN gets not
>too much traffic, so I guess the load isn't really that bad... but
>wait, there's more:
>
>01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 [Millennium G200 
>AGP] (rev 01)
>        Subsystem: Unknown device 102b:ff03
>        Flags: bus master, VGA palette snoop, medium devsel, latency 64, IRQ 16
>        Memory at e8000000 (32-bit, prefetchable)
>        Memory at e4000000 (32-bit, non-prefetchable)
>        Memory at e5000000 (32-bit, non-prefetchable)
>
>my graphics card is also on IRQ 16! (err, I notice that it is on a
>different - presumably AGP - bus, so this probably doesn't count)
>
>Why is linux deciding that two AIC7895 UW SCSI controllers, a 100Mb
>ethernet card, and my video card should all get interrupt 16, when
>under normal usage these are some of the more high-bandwith devices
>one can have?

It's not that Linux decides on using irq16.  It's that Linux is told
that irq 16 is where things are at, so that's why Linux sets up the
party at that irq.

The thing that actually determines the physical IRQ in a PCI system is
(a) the position of the cards on the bus together with motherboard irq
line routing and (b) potential remapping hardware and the BIOS setup. 

Each PCI card has 4 interrupt outputs, but all the outputs are mapped
into the interrupt controller inputs, and that mapping is generally not
a 1:1 thing - a common setup is that you have 5 PCI slots (thus
potentially 20 interrupt sources if you were to find cards that actually
used more than one interrupt - which is uncommon), and those 20 PCI
interrupts are usually mapped onto just 4 IO-APIC input pins (depending
on the motherboard and IO-APIC revision etc etc).

In short, there is obviously going to be some overlap.

However, all is not lost.  Your setup sounds pretty pessimal, and it's
almost certain that you can change it by either going into your BIOS
"advanced PCI setup" or similar and moving the interrupts around there
by hand. 

If you can't find anything like that, it probably means that the mapping
is fixed in hardware (or the BIOS doesn't let you influence it, which
comes to the same thing in the end).  Even then all is not lost, because
you can probably just shuffle the cards physically around, and the IRQ's
will magically change. 

                Linus
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/mentre/smp-faq/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to