irq19 interrupt storm?

John Baldwin jhb at freebsd.org
Wed Sep 17 21:18:51 UTC 2008


On Wednesday 17 September 2008 11:00:24 am Scott Gasch wrote:
> You're right: atapci1, atapci2, fwohci0 and uhci4 are all sharing the same
> irq (19) while irqs 20, 21, 22 at least seem completely unused.  Here's a
> dumb question: how do I fix it?  I tried setting "plug and play OS" in the
> BIOS and then using device.hints to push different devices to different
> irqs.  But every time I tried a new hint it seemed to be ignored.  I was
> trying stuff like:
> 
> set hint.atapci.1.irq="20"
> set hint ata.4.irq="20" (ata4 is a channel on atapci1)
> set hint fwhco.0.irq="20"
> etc...
> 
> 
> I also tried to move the dc driver to a new irq as a test.  This was also
> seemingly ignored.
> 
> I then tried turning "plug and play OS" off in the BIOS but I don't see
> anywhere to set the IRQs of the onboard SATA controllers via the menus.  I'm
> looking for a BIOS upgrade now... any other advice?

Unfortunately you can't really move PCI IRQs around.  You can read about more 
of the gritty details here: 

http://people.freebsd.org/~jhb/papers/bsdcan/2007/

You might be able to shuffle some IRQs around using 'hw.pciX.Y.INTA.irq' 
tunables.

Probably you have a device driver whose interrupt handler isn't handling some 
condition.  I would suspect ata as it's interrupt handler is rather 
simplistic with no chipset-specific hooks, and I've seen several reports of 
interrupt storms with ata(4) recently.

> Thx,
> Scott
> 
> 
> On Tue, Sep 16, 2008 at 7:12 AM, Gary Jennejohn
> <gary.jennejohn at freenet.de>wrote:
> 
> > On Mon, 15 Sep 2008 22:57:38 -0700
> > "Scott Gasch" <scott.gasch at gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I'm running freebsd 7.0-RELEASE-p4 on a 4-core amd64 box. Nearly 100% of
> > > 1 cpu is constantly being used handling irq19: uhci4 interrupts. This
> > > seems to happen both with and without any USB devices plugged in:
> > >
> > > vmstat -i
> > > interrupt total rate
> > > irq1: atkbd0 5 0
> > > irq6: fdc0 1 0
> > > irq17: mskc0 dc0 1180547 18
> > > irq18: skc0 uhci2* 163250699 2512
> > > irq19: uhci4++ 3187989508 49072
> >
> > I think the ++ here indicates that two or more devices are sharing this
> > interrupt.  Try doing "grep irq.*19 /var/run/dmesg.boot" to see which
> > ones.  One of these devices could be the culprit.
> >
> > ---
> > Gary Jennejohn
> >
> _______________________________________________
> freebsd-amd64 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-amd64
> To unsubscribe, send any mail to "freebsd-amd64-unsubscribe at freebsd.org"
> 



-- 
John Baldwin


More information about the freebsd-amd64 mailing list