Discussion:
PCI interrupt routing with APIC broken again
(too old to reply)
Tomi Vainio - Sun Finland
2004-04-20 12:24:49 UTC
Permalink
Hi,

My SMP system is seeing continous interrupt storm from acpi irq20.
Originally this is a bug on my mobo but John has fixed it already
twice tweaking the code. I've cvsupped source 10th and 17th of April
and it broke between these so probably PCI changes did something. Any
idea how to fix this now?

acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20

# vmstat -i
interrupt total rate
irq1: atkbd0 300 0
irq0: clk 23517218 99
irq8: rtc 30102353 127
irq12: psm0 3214 0
irq14: ata0 10 0
irq15: ata1 55 0
irq16: ahc0 ahc1 118669 0
irq17: fxp0 67232 0
irq19: uhci0 bktr0 36162124 153
irq20: acpi0 3063111398 13024
irq9: intpm0 37606 0
Total 3153120179 13407

Tomppa
Peter Schultz
2004-04-20 13:30:23 UTC
Permalink
Post by Tomi Vainio - Sun Finland
Hi,
My SMP system is seeing continous interrupt storm from acpi irq20.
Originally this is a bug on my mobo but John has fixed it already
twice tweaking the code. I've cvsupped source 10th and 17th of April
and it broke between these so probably PCI changes did something. Any
idea how to fix this now?
Have you tried setting `hw.acpi.force_sci_lo=1' at the loader prompt?

Pete...
Post by Tomi Vainio - Sun Finland
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20
# vmstat -i
interrupt total rate
irq1: atkbd0 300 0
irq0: clk 23517218 99
irq8: rtc 30102353 127
irq12: psm0 3214 0
irq14: ata0 10 0
irq15: ata1 55 0
irq16: ahc0 ahc1 118669 0
irq17: fxp0 67232 0
irq19: uhci0 bktr0 36162124 153
irq20: acpi0 3063111398 13024
irq9: intpm0 37606 0
Total 3153120179 13407
Tomi Vainio - Sun Finland
2004-04-20 13:48:57 UTC
Permalink
Post by Peter Schultz
Have you tried setting `hw.acpi.force_sci_lo=1' at the loader prompt?
MADT: Forcing active-lo polarity and level trigger for IRQ 9
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20

Now vmstat -i doesn't show acpi at all.

# vmstat -i
interrupt total rate
irq1: atkbd0 1 0
irq0: clk 56509 99
irq8: rtc 72333 127
irq14: ata0 10 0
irq15: ata1 55 0
irq16: ahc0 ahc1 4736 8
irq17: fxp0 1595 2
irq9: intpm0 862 1
Total 136101 240

Tomppa
John Baldwin
2004-04-22 13:49:06 UTC
Permalink
Post by Tomi Vainio - Sun Finland
Hi,
My SMP system is seeing continous interrupt storm from acpi irq20.
Originally this is a bug on my mobo but John has fixed it already
twice tweaking the code. I've cvsupped source 10th and 17th of April
and it broke between these so probably PCI changes did something. Any
idea how to fix this now?
acpi0: Overriding SCI Interrupt from IRQ 9 to IRQ 20
# vmstat -i
interrupt total rate
irq1: atkbd0 300 0
irq0: clk 23517218 99
irq8: rtc 30102353 127
irq12: psm0 3214 0
irq14: ata0 10 0
irq15: ata1 55 0
irq16: ahc0 ahc1 118669 0
irq17: fxp0 67232 0
irq19: uhci0 bktr0 36162124 153
irq20: acpi0 3063111398 13024
irq9: intpm0 37606 0
Total 3153120179 13407
Tomppa
Yes, add 'hw.acpi.force_sci_lo=1' to /boot/loader.conf. This was mentioned in
the commit messsage:

jhb 2004/04/16 12:46:30 PDT

FreeBSD src repository

Modified files:
sys/i386/acpica madt.c
Log:
Revert part of the "BIOS brain damage" from rev 1.10. It seems that
different BIOSs use the same exact settings to mean two very different and
incompatible things for the SCI. Thus, if the SCI is remapped to a PCI
interrupt, we now trust the trigger/polarity that the MADT provides by
default. However, the SCI can be forced to level/lo as 1.10 did by setting
the tunable "hw.acpi.force_sci_lo" to a non-zero value from the loader.

Thus, if rev 1.10 caused an interrupt storm, it should nwo fix your
machine. If rev 1.10 fixed an interrupt storm on your machine, you
probably need to set the aforementioned tunable in /boot/loader.conf to
prevent the interrupt storm.

The more general problem of getting the SCI's trigger/polarity programmed
"correctly" (for some value of correctly meaning several workarounds for
broken BIOSs and inconsistent "implementations" of the ACPI standard) is
going to require more work, but this band-aid should improve the current
situation somewhat.

Requested by: njl

Revision Changes Path
1.11 +5 -4 src/sys/i386/acpica/madt.c
--
John Baldwin <***@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
Loading...