Re: SMP Interrupt patches

Peter T. Waltenberg (
Fri, 23 Jan 1998 15:30:10 +1300 (NZDT)

On 22-Jan-98 Benny Amorsen wrote:
>>>>>> "lka" == linux kernel account <> writes:
> lka> I agree with this.. A table would be nice.. There aren't that
> lka> many boards out there are there??
> lka> It would be ashame to deprive people of IO-APIC.. It would be
> lka> nice to have the kernel detect differnt boards and have a mapping
> lka> table (It wouldn't take up much memory).. There should also be a
> lka> diasable boot param (incase of a defective/falsely reporting
> lka> board), and a manual set (for yet to be supported boards)..
> lka> If it was a userspace solution, nobody would ever use it..
> Imagine that a distribution runs the userspace IO-APIC detection
> program during the installation. Most distributions do a reboot after
> succesful installation, and after that reboot the IRQ mapping should
> be up.
> It does require help from the distributors, but the kernel cannot
> contain everything just so it will work even when the distributors
> fail to do their jobs. And there are no motherboards that depend on
> the new IRQ mapping, right? (That would obviously mean not supporting
> DOS or Windows 95... Yeah right)
> Benny

My concern with this is that the probe would have to be done every reboot,
or at least when the card configuration in the PCI slots changed. We can't
probe the slots with no cards installed, and every slot with a card that uses
an interrupt will have it's own very unique way of triggering interrupts. So
basically there's no way of probing other than through the device driver for
the PCI card devices.

It's *NOT* something a userland program could easilly do without a generic
"generate an interrupt" call in each device driver. Even then the userland
program would have to tell the kernel that this probe is taking place. Very
messy, and very dangerous.

Since Linux works without the APIC code this can be done in the kernel
config process. Known motherboards could be located with a userland program
and the "correct" mapping setup as part of "make config".
Or, if you read the docs, you could install your own mapping.
No (runtime) kernel bloat required.

CONFIG_IO_APIC (N/y/?) etc

The distribution kernels can come with this option disabled, and use the
older interrupt code. They'll still run fine.
It's something the more informed user can turn on when they compile and
install their own kernel.

BTW, is Linux the first OS to hit this problem ?

Date: 23-Jan-98
Time: 15:20:29