View Single Post
Old 10-08-08, 02:52 AM   #5
JaXXoN
Registered User
 
Join Date: Jul 2005
Location: Munich
Posts: 910
Default Re: What better, PCI-X MSI or Wired IRQ? [177.80]

Hi!

Message Signaled Interrupts (MSI) have the advantage that you don't
need to share physical signal lines on the mainboard because the
PCI/PCIe/PCI-X device issues an "interrupt command" on the PCI/PCIe/PCI-X
bus to the chipset, instead. For the OS, that means that it can assign an
individual interrupt vector for each device rather than polling all driver's ISRs
using the same IRQ line.

Example: in my configuration, a "cat /proc/interrupts" shows (except):
Code:
           CPU0       CPU1       
 16:     207031          0   IO-APIC-fasteoi   arcmsr, EMU10K1, nvidia
220:       1608     165138   PCI-MSI-edge      eth0
This means that the nvidia card, the sound card and the raid controller
are all sharing the same (physical or logical) interrupt line. If an IRQ #16
drops in, the OS needs to call all three ISRs, because it can't directly
determine which of the devices actually caused the interrupt (or even
all three devices may have caused an interrupt at the same time).
Typically one interrupt drops in and one ISR will actively handle
this interrupt, the other two ISRs will typically only check that they are
not in charge and return early (but nevertheless consume some CPU
cycles).

Sharing interrupts is always a good source of problems, i.e. race-conditions,
or if one driver goes mad and disables the interrupt line, then the other two
driver are gone, too: when the nivida driver crashes in my setup (i.e.
because of overheat) the sound and the access to the harddisks is also gone.
When using MSI, instead, the OS needs to call only one ISR and it is less likely
that a driver problem leads to a complete system failure.

regards

Bernhard
JaXXoN is offline   Reply With Quote