[SGVLUG] More laptop fun--IRQ assignments

Dustin laurence at alice.caltech.edu
Thu Dec 8 06:07:58 PST 2005


On Tue, 6 Dec 2005, David Lawyer wrote:

> You must be using PCI which allows sharing IRQs.

PCI-Express, actually.  ISA is actually two generations out of date 
now.... (and thank God for that--it sucked royally)

> ...When a device issues
> such an interrupt, all the drivers that share the IRQ have to run
> sequentially.

And normally, I think that's just fine.  My worry is getting the sound
card latency driven down to single-digits.

> ---------------Next 2 pars. probably of no help, but---------------

On the contrary, it answers a key question that has been bothering me.

> Now about IRQ assignments.  They may be restricted by a limited number
> of traces on the MB and by the way these traces (perhaps only 4) are
> hardwired to PCI interrupts.  Each PCI card has only 4 possible
> interrupts:

> Now an "idiot" hardwiring scheme for bonding 4 interrupt traces to all
> the PCI slots is to just connect all pci-interrupts A (for all slots) to
> trace1, all B to trace2, etc.  Then if all PCI cards have only one
> function, they all use interrupt A and trace1.  Trace1 can only be
> mapped to only one IRQ.  So no matter how one maps this design,
> everything gets the same IRQ unless a card contains more than one
> function (device).

Ah.  This makes some sense.  I suspect it's at least part of the reason 
the docs I found seem contradictory about whether you can actually re-map 
IRQs in the OS or not.

I guess I'd have to contact Asus about this.

> <asm/io_apic.h> has a function: io_apic_set_pci_routing which can
> attempt routing (redirecting) irqs.  Some call it a pin-to-irq map
> with the pin being a PCI interrupt pin.  asm may be asm-386 in newer
> kernels.  The io_apic.c kernel code is what may need to be patched. I
> noticed on the Internet that someone who had a similar problem
> (everything on one irq) patched io_apic.c and submitted the fix.

URL?

> and if it's buggy then the mapping may not work right.  You could
> search the patches to io_apic.c.  There are a lot of them.

The patch I am aware of is

http://users.informatik.uni-halle.de/~ladischc/ioapic_priorities.html

which as you say is outdated.  I am unaware of patches for newer kernels.

> ...Or you
> could just try linux-image-2.6.14 in Debian.

This is Gentoo. :-)

That said, of course I could just build my own and use any I like.  It's a 
bit complicated because I am already carrying around some other patches, 
and mostly that I am distracted by other things.

Dustin



More information about the SGVLUG mailing list