x86: docs fixes to Documentation/i386/IO-APIC.txt
Clean up spelling and grammar of IO-APIC.txt Signed-off-by: Nick Andrew <nick@nick-andrew.net> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
d8ff0bbf56
commit
248fb89c12
|
@ -1,12 +1,14 @@
|
||||||
Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
|
Most (all) Intel-MP compliant SMP boards have the so-called 'IO-APIC',
|
||||||
which is an enhanced interrupt controller, it enables us to route
|
which is an enhanced interrupt controller. It enables us to route
|
||||||
hardware interrupts to multiple CPUs, or to CPU groups.
|
hardware interrupts to multiple CPUs, or to CPU groups. Without an
|
||||||
|
IO-APIC, interrupts from hardware will be delivered only to the
|
||||||
|
CPU which boots the operating system (usually CPU#0).
|
||||||
|
|
||||||
Linux supports all variants of compliant SMP boards, including ones with
|
Linux supports all variants of compliant SMP boards, including ones with
|
||||||
multiple IO-APICs. (multiple IO-APICs are used in high-end servers to
|
multiple IO-APICs. Multiple IO-APICs are used in high-end servers to
|
||||||
distribute IRQ load further).
|
distribute IRQ load further.
|
||||||
|
|
||||||
There are (a few) known breakages in certain older boards, which bugs are
|
There are (a few) known breakages in certain older boards, such bugs are
|
||||||
usually worked around by the kernel. If your MP-compliant SMP board does
|
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.
|
not boot Linux, then consult the linux-smp mailing list archives first.
|
||||||
|
|
||||||
|
@ -28,18 +30,18 @@ If your box boots fine with enabled IO-APIC IRQs, then your
|
||||||
hell:~>
|
hell:~>
|
||||||
<----------------------------
|
<----------------------------
|
||||||
|
|
||||||
some interrupts are still listed as 'XT PIC', but this is not a problem,
|
Some interrupts are still listed as 'XT PIC', but this is not a problem;
|
||||||
none of those IRQ sources is performance-critical.
|
none of those IRQ sources is performance-critical.
|
||||||
|
|
||||||
|
|
||||||
in the unlikely case that your board does not create a working mp-table,
|
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
|
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
|
is non-trivial though and cannot be automated. One sample /etc/lilo.conf
|
||||||
entry:
|
entry:
|
||||||
|
|
||||||
append="pirq=15,11,10"
|
append="pirq=15,11,10"
|
||||||
|
|
||||||
the actual numbers depend on your system, on your PCI cards and on their
|
The actual numbers depend on your system, on your PCI cards and on their
|
||||||
PCI slot position. Usually PCI slots are 'daisy chained' before they are
|
PCI slot position. Usually PCI slots are 'daisy chained' before they are
|
||||||
connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4
|
connected to the PCI chipset IRQ routing facility (the incoming PIRQ1-4
|
||||||
lines):
|
lines):
|
||||||
|
@ -54,7 +56,7 @@ lines):
|
||||||
PIRQ1 ----| |- `----| |- `----| |- `----| |--------| |
|
PIRQ1 ----| |- `----| |- `----| |- `----| |--------| |
|
||||||
`-' `-' `-' `-' `-'
|
`-' `-' `-' `-' `-'
|
||||||
|
|
||||||
every PCI card emits a PCI IRQ, which can be INTA,INTB,INTC,INTD:
|
Every PCI card emits a PCI IRQ, which can be INTA, INTB, INTC or INTD:
|
||||||
|
|
||||||
,-.
|
,-.
|
||||||
INTD--| |
|
INTD--| |
|
||||||
|
@ -95,21 +97,21 @@ card (IRQ11) in Slot3, and have Slot1 empty:
|
||||||
[value '0' is a generic 'placeholder', reserved for empty (or non-IRQ emitting)
|
[value '0' is a generic 'placeholder', reserved for empty (or non-IRQ emitting)
|
||||||
slots.]
|
slots.]
|
||||||
|
|
||||||
generally, it's always possible to find out the correct pirq= settings, just
|
Generally, it's always possible to find out the correct pirq= settings, just
|
||||||
permute all IRQ numbers properly ... it will take some time though. An
|
permute all IRQ numbers properly ... it will take some time though. An
|
||||||
'incorrect' pirq line will cause the booting process to hang, or a device
|
'incorrect' pirq line will cause the booting process to hang, or a device
|
||||||
won't function properly (if it's inserted as eg. a module).
|
won't function properly (e.g. if it's inserted as a module).
|
||||||
|
|
||||||
If you have 2 PCI buses, then you can use up to 8 pirq values. Although such
|
If you have 2 PCI buses, then you can use up to 8 pirq values, although such
|
||||||
boards tend to have a good configuration.
|
boards tend to have a good configuration.
|
||||||
|
|
||||||
Be prepared that it might happen that you need some strange pirq line:
|
Be prepared that it might happen that you need some strange pirq line:
|
||||||
|
|
||||||
append="pirq=0,0,0,0,0,0,9,11"
|
append="pirq=0,0,0,0,0,0,9,11"
|
||||||
|
|
||||||
use smart try-and-err techniques to find out the correct pirq line ...
|
Use smart trial-and-error techniques to find out the correct pirq line ...
|
||||||
|
|
||||||
good luck and mail to linux-smp@vger.kernel.org or
|
Good luck and mail to linux-smp@vger.kernel.org or
|
||||||
linux-kernel@vger.kernel.org if you have any problems that are not covered
|
linux-kernel@vger.kernel.org if you have any problems that are not covered
|
||||||
by this document.
|
by this document.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue