lkml.org 
[lkml]   [1999]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectIRQ 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/

\
 
 \ /
  Last update: 2005-03-22 13:55    [W:0.054 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site