Why is intr taking up so much cpu?

Dan Nelson dnelson at allantgroup.com
Sun Jul 18 20:31:14 UTC 2010


In the last episode (Jul 18), Doug Barton said:
> On 07/18/10 12:41, Kostik Belousov wrote:
> > When intr time starts accumulating again, try to do
> > "procstat -kk <intr process pid>" and correlate the clock thread tid
> > with the backtrace. Might be, it helps to guess what callouts are eating
> > the CPU.
> 
> Will do, thanks!

You can also use dtrace to get a count of callouts and their time spent. 
Run this for a few seconds then hit ^C:

#! /usr/sbin/dtrace -s
/* #pragma D option quiet */

callout_execute:::callout_start
{
        this->start = timestamp;
}

callout_execute:::callout_end
{
        this->end = timestamp;
/*      printf("%a %d\n",args[0]->c_func, this->end - this->start); */
        @times[args[0]->c_func] = quantize(this->end - this->start);
/*      @times[args[0]->c_func] = lquantize(this->end - this->start,0,300000,10000); */
        @counts[args[0]->c_func] = count();
}

END
{
        printa("%a %@u\n", at times);
        printa("%a %@u\n", at counts);
}


-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-current mailing list