Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 2008 16:37:32 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Oliver Peter <lists@peter.de.com>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: kernel: interrupt storm detected on "irq22:"; throttling interrupt source [7.0-RELEASE]
Message-ID:  <200809221637.33168.jhb@freebsd.org>
In-Reply-To: <20080922150952.GA37948@nemesis.frida.mouhaha.de>
References:  <20080901141216.72601dfb@dilbert.office.centralnic.com> <200809091424.16302.jhb@freebsd.org> <20080922150952.GA37948@nemesis.frida.mouhaha.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809221637.33168.jhb>