PCI interrupt routing with APIC broken again

John Baldwin jhb at FreeBSD.org
Thu Apr 22 06:47:53 PDT 2004

On Tuesday 20 April 2004 08:23 am, Tomi Vainio - Sun Finland wrote:
> 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 
  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 <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org

More information about the freebsd-current mailing list