Messages in this thread | | | Date | Tue, 30 Nov 1999 12:21:52 +0200 | From | Oleg Drokin <> | Subject | IRQ Layout. |
| |
Hello!
I have dual processor motherboard with IO apic. All was fine till I added one more card in. M/B has 5 PCI/2 ISA slots on it. Now I have (from 1st to 5th PCI slot) 3 realtek 8029 cards, Adaptec SCSI card (this one is detected as 2 devices scsi devices), and SMC1211TX EZCard 10/100 (RealTek RTL8139). Motherboard initially assigns irqs below 16 to all devices, But then linux rearanges these irq alocations. Assigned irqs: ccssu:~# cat /proc/interrupts CPU0 CPU1 0: 79973 79426 IO-APIC-edge timer 1: 2259 2512 IO-APIC-edge keyboard 2: 0 0 XT-PIC cascade 4: 59637 60742 IO-APIC-edge serial 8: 1 0 IO-APIC-edge rtc 10: 33018 30528 IO-APIC-edge serial 12: 1270 1331 IO-APIC-edge PS/2 Mouse 13: 1 0 XT-PIC fpu 14: 7 1 IO-APIC-edge ide0 15: 32 24 IO-APIC-edge ide1 16: 4894 4716 IO-APIC-level aic7xxx, eth0, eth3 17: 7272 7401 IO-APIC-level eth1 18: 2030 1997 IO-APIC-level eth2 19: 7628 7766 IO-APIC-level aic7xxx
Now is the question: Why three devices on one irq line, when there is still some free irqs? How can I change things? Yes, I have read Documentation/IO-APIC.txt, but seems that it deals with blacklisted/unknown IO-Apics and assumes that whitelisted should be ok, or can I use described method in my case too? Then what to do with SCSI card? It eats 2 irqs and is shown as 2 PCI devices: ccssu:~# lspci | grep AIC 00:0b.0 SCSI storage controller: Adaptec AIC-7895 (rev 04) 00:0b.1 SCSI storage controller: Adaptec AIC-7895 (rev 04)
BTW, I tried to change location of cards and IRQ layout was a little different but stiil not desired. (e.g. I can get irq 16 shared between aic7xxx and eth0 and irq 18 shared between aic7xxx with eth1)
Here is part of kernel booting messages regarding IO APIC:
enabling symmetric IO mode... ...done. ENABLING IO-APIC IRQs init IO_APIC IRQs IO-APIC (apicid-pin) 2-0, 2-20, 2-21, 2-22, 2-23 not connected. number of MP IRQ sources: 23. number of IO-APIC #2 registers: 24. testing the IO APIC....................... IO APIC #2...... .... register #00: 02000000 ....... : physical APIC id: 02 .... register #01: 00170011 ....... : max redirection entries: 0017 ....... : IO APIC version: 0011 .... register #02: 00000000 ....... : arbitration: 00 .... IRQ redirection table: NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect: 00 000 00 1 0 0 0 0 0 0 00 01 000 00 0 0 0 0 0 1 1 59 02 0FF 0F 0 0 0 0 0 1 1 51 03 000 00 0 0 0 0 0 1 1 61 04 000 00 0 0 0 0 0 1 1 69 05 000 00 0 0 0 0 0 1 1 71 06 000 00 0 0 0 0 0 1 1 79 07 000 00 0 0 0 0 0 1 1 81 08 000 00 0 0 0 0 0 1 1 89 09 000 00 0 0 0 0 0 1 1 91 0a 000 00 0 0 0 0 0 1 1 99 0b 000 00 0 0 0 0 0 1 1 A1 0c 000 00 0 0 0 0 0 1 1 A9 0d 000 00 1 0 0 0 0 0 0 00 0e 000 00 0 0 0 0 0 1 1 B1 0f 000 00 0 0 0 0 0 1 1 B9 10 0FF 0F 1 1 0 1 0 1 1 C1 11 0FF 0F 1 1 0 1 0 1 1 C9 12 0FF 0F 1 1 0 1 0 1 1 D1 13 0FF 0F 1 1 0 1 0 1 1 D9 14 000 00 1 0 0 0 0 0 0 00 15 000 00 1 0 0 0 0 0 0 00 16 000 00 1 0 0 0 0 0 0 00 17 000 00 1 0 0 0 0 0 0 00 .................................... done. mtrr: your CPUs had inconsistent fixed MTRR settings mtrr: probably your BIOS does not setup all CPUs PCI: PCI BIOS revision 2.10 entry at 0xfb370 PCI: Using configuration type 1 PCI: Probing PCI hardware PCI->APIC IRQ transform: (B0,I8,P0) -> 16 PCI->APIC IRQ transform: (B0,I9,P0) -> 17 PCI->APIC IRQ transform: (B0,I10,P0) -> 18 PCI->APIC IRQ transform: (B0,I11,P0) -> 19 PCI->APIC IRQ transform: (B0,I11,P1) -> 16 PCI->APIC IRQ transform: (B0,I12,P0) -> 16
Bye, Oleg
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |