patch-2.3.12 linux/Documentation/IO-APIC.txt
Next file: linux/Documentation/proc_usb_info.txt
Previous file: linux/Documentation/Configure.help
Back to the patch index
Back to the overall index
- Lines: 110
- Date:
Sun Jul 25 10:26:01 1999
- Orig file:
v2.3.11/linux/Documentation/IO-APIC.txt
- Orig date:
Wed Jun 24 14:30:07 1998
diff -u --recursive --new-file v2.3.11/linux/Documentation/IO-APIC.txt linux/Documentation/IO-APIC.txt
@@ -1,51 +1,41 @@
-Most (all) Intel SMP boards have the so-called 'IO-APIC', which is
-an enhanced interrupt controller, able to route hardware interrupts
-to multiple CPUs, or to CPU groups.
+Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
+which is an enhanced interrupt controller, it enables us to route
+hardware interrupts to multiple CPUs, or to CPU groups.
+
+Linux supports all variants of compliant SMP boards, including ones with
+multiple IO-APICs. (multiple IO-APICs are used in high-end servers to
+distribute IRQ load further).
+
+There are (a few) known breakages in certain older boards, which bugs are
+usually worked around by the kernel. If your MP-compliant SMP board does
+not boot Linux, then consult the linux-smp mailing list archives first.
-Linux supports the IO-APIC, but unfortunately there are broken boards
-out there which make it unsafe to enable the IO-APIC unconditionally.
-The Linux policy thus is to enable the IO-APIC only if it's 100% safe, ie.:
-
- - the board is on the 'whitelist'
-
- or - the board does not have PCI pins connected to the IO-APIC
-
- or - the user has overridden blacklisted settings with the
- pirq= boot option line.
-
-Kernel messages tell you whether the board is 'safe'. If your box
-boots with enabled IO-APIC IRQs, then you have nothing else to do. Your
+If your box boots fine with enabled IO-APIC IRQs, then your
/proc/interrupts will look like this one:
---------------------------->
- hell:~> cat /proc/interrupts
- CPU0 CPU1
- 0: 90782 0 XT PIC timer
- 1: 4135 2375 IO-APIC keyboard
- 2: 0 0 XT PIC cascade
- 3: 851 807 IO-APIC serial
- 9: 6 22 IO-APIC ncr53c8xx
- 11: 307 154 IO-APIC NE2000
- 13: 4 0 XT PIC fpu
- 14: 56000 30610 IO-APIC ide0
- NMI: 0
- IPI: 0
- <----------------------------
-
-some interrupts will still be 'XT PIC', but this is not a problem, none
-of those IRQ sources is 'heavy'.
-
-If one of your boot messages says 'unlisted/blacklisted board, DISABLING
-IO-APIC IRQs', then you should do this to get multi-CPU IO-APIC IRQs
-running:
-
- A) if your board is unlisted, then mail to linux-smp to get
- it into either the white or the blacklist
- B) if your board is blacklisted, then figure out the appropriate
- pirq= option to get your system to boot
-
-
-pirq= lines look like the following in /etc/lilo.conf:
+ hell:~> cat /proc/interrupts
+ CPU0
+ 0: 1360293 IO-APIC-edge timer
+ 1: 4 IO-APIC-edge keyboard
+ 2: 0 XT-PIC cascade
+ 13: 1 XT-PIC fpu
+ 14: 1448 IO-APIC-edge ide0
+ 16: 28232 IO-APIC-level Intel EtherExpress Pro 10/100 Ethernet
+ 17: 51304 IO-APIC-level eth0
+ NMI: 0
+ ERR: 0
+ hell:~>
+ <----------------------------
+
+some interrupts are still listed as 'XT PIC', but this is not a problem,
+none of those IRQ sources is performance-critical.
+
+
+in the unlikely case that your board does not create a working mp-table,
+you can use the pirq= boot parameter to 'hand-construct' IRQ entries. This
+is nontrivial though and cannot be automated. One sample /etc/lilo.conf
+entry:
append="pirq=15,11,10"
@@ -111,22 +101,13 @@
won't function properly (if it's inserted as eg. a module).
If you have 2 PCI buses, then you can use up to 8 pirq values. Although such
-boards tend to have a good configuration and will be included in the
-whitelist.
+boards tend to have a good configuration.
Be prepared that it might happen that you need some strange pirq line:
append="pirq=0,0,0,0,0,0,9,11"
use smart try-and-err techniques to find out the correct pirq line ...
-
-
-the following pirq line can be used to force a board into the whitelist:
-
- append="pirq=0"
-
-[if your system works with no problems after this, then it should be added
-to the official whitelist, contact us]
good luck and mail to linux-smp@vger.rutgers.edu or
linux-kernel@vger.rutgers.edu if you have any problems that are not covered
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)