kernel: interrupt storm detected on "irq22:"; throttling interrupt source [7.0-RELEASE]

John Baldwin jhb at freebsd.org
Mon Sep 22 21:09:25 UTC 2008


On Monday 22 September 2008 11:09:52 am Oliver Peter wrote:
> On Tue, Sep 09, 2008 at 02:24:16PM -0400, John Baldwin wrote:
> > On Monday 08 September 2008 07:08:05 pm Oliver Peter wrote:
> > > ...
> > > ... of course I could do that - but could you please be so kind and
> > > explain how to do that?  :-)
> > 
> > Well, you could start by adding a printf to ata's interrupt handler, but 
that 
> > would result in a flood on your screen.  You could maybe use a KTR 
instead, 
> > but only do it if the interrupt handler doesn't find any work to do (e.g. 
no 
> > pending request) perhaps.  I think the ATA interrrupt handler already 
reads a 
> > status register of some sort, but I could be wrong.
> 
> I feels like I need a rosetta stone for that...  :)
> 
> This is my "production" machine in the datacenter 2,000km away -
> I would love to debug that interrupt storm with KTR, but I'm not sure
> what I'm doing at all and nobody can ensure that my machine will
> come up again after that...
> 
> Anyway I would like to learn more about the KTR stuff.
> I've never heard about that before, is that a good point to start out?
> 
>      http://www.watson.org/~robert/freebsd/netperf/ktr/

There's also a manpage (man ktr).  You probably want to just enable KTR_DRIVER 
in KTR_COMPILE and KTR_MASK and add custom traces to the ata driver.  Adding 
traces is about like printf:

	CTR0(KTR_DRIVER, "a message");
	CTR1(KTR_DRIVER, "with one argument %d", foo);
	CTR2(KTR_DRIVER, "two args: %p (%d)", req, req->count);

etc.

-- 
John Baldwin


More information about the freebsd-acpi mailing list