I did not take it too seriously until the beginning of this week when I plugged in an extra Promise controller. I have a gigabyte 6BXD Dual Pentium Board which is a quite nice piece of hardware. Just the Award BIOS is crappy in that you cant assign IRQs directly to certain slots but only reserve certain interrupts from being distributed among the PCI Units. Anyway, until Linux 2.4, the kernel did cope quite well with that and distributed IRQs equally using the whole range of interrupts the IO-APIC delivers.
Now, I have this Promise controller and my IRQ table looks like this:
CPU0 CPU1
0: 21400 20144 IO-APIC-edge timer
1: 1349 1173 IO-APIC-edge keyboard
2: 0 0 XT-PIC cascade
5: 5 3 IO-APIC-edge serial
8: 1 1 IO-APIC-edge rtc
12: 3138 3046 IO-APIC-edge PS/2 Mouse
14: 857 6088 IO-APIC-edge ide0
15: 452 3855 IO-APIC-edge ide1
16: 24354 24086 IO-APIC-level aic7xxx, aic7xxx, aic7xxx, ide2,
ide3, nvidia
18: 501 445 IO-APIC-level EMU10K1
19: 822 765 IO-APIC-level usb-uhci, eth0
Given that IRQs<6 are all locked for serial IO that means IRQ 7,9,11 and 17
are completely unused but there are a whopping 6 devices on IRQ 16.
Needless to say that Harddrives connected to ide2 and ide3 (Promise) constantly lose interrupts when used as long as X is running (nvidia), bringing the system to crawl.
I have tried virtually everything to make Linux (and the BIOS) reconsider IRQ distribution and failed.
And yes, all DMA stuff is properly set, the disks are recognized with their real size, partitioned and initialized correctly and so on. In fact they work like a charm as long as I don't use the graphics card.
Is there any way to reassign IRQs under 2.4.x to stabilize the system?
Is there any way to make Linux-2.4.x-SMP distribute IRQs in the same fashion
Linux-2.2.x-SMP did?
Any help appreciated (including pointers on what to patch in the kernel)
Regards,
Fionn
-- I believe we have been called by history to lead the world. G.W. Bush, 2002-03-01 - 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/