Re: irqs on large machines (patch)

Milton Miller (miltonm@bga.com)
Wed, 25 Sep 2002 04:11:01 -0500 (CDT)


PowerPC 64 (p690 in particular) had a similar but different
problem with NR_IRQS.

The hardware gives direct vectors, but the number space is 9 bits
to identify the pci host bridge in the drawers, and yet 4 more to
identify the source on the pci bus. All of the 9 bits are used at
various levels of the hardware for routing, so the global number
space is a bit sparse.

Each interrupt can be sent to the global queue or a specific
processor's queue.

Rather than size NR_IRQS for the native index, the hardware numbers
are mapped with a simple mapping table that directly maps dense
linux irqs to hardware numbers. Thus the linux NR_IRQs is set based on
the total number of hardware sources. (And yes, we found we needed
/proc/interrupts to be seq_file based, but that is long merged).

Perhaps this will give you ideas for other alternatives? This approach
could also allow you to assign IO interrupts to a node if your hardware
allows.

milton

-- 
[I'll look for any replys on the list]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/