Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Oct 2010 21:39:48 +1100 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        kes-kes@yandex.ru
Cc:        freebsd-questions@freebsd.org
Subject:   Re[2]: How to obtain which interrupts cause system to hang?
Message-ID:  <20101010194711.Y2036@sola.nimnet.asn.au>
In-Reply-To: <1076883893.20101010105041@yandex.ru>
References:  <20101009204915.0360410656F1@hub.freebsd.org> <20101010161330.R2036@sola.nimnet.asn.au> <1076883893.20101010105041@yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 10 Oct 2010, ??????? ??????? wrote:
 >  >> #systat -v
 >  >>     1 users    Load  0.74  0.71  0.55                  Oct  9 19:53
 > IS> [..]
 >  >> Proc:                                                            Interrupts
 >  >>   r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt     24 cow    2008 total
 >  >>   2       3  39       23k   67  563    9 1710   47     15 zfod      9 ata0 irq14
 >  >>                                                           ozfod       nfe0 irq23
 >  >> 23.1%Sys  50.8%Intr  1.3%User  0.0%Nice 24.8%Idle        %ozfod  1999 cpu0: time
 >  >> |    |    |    |    |    |    |    |    |    |    |       daefr
 >  >> ============+++++++++++++++++++++++++>                  6 prcfr
 > 
 > IS> Yes, system and esp. interrupt time is heavy .. 23k context switches!?
 > 
 > IS> In addition to b. f.'s good advice .. as you later said, 2000 Hz slicing
 > IS> _should_ be ok, unless a slow CPU?  Or perhaps a fast CPU throttled back
 > IS> too far .. powerd?  Check sysctl dev.cpu.0.freq while this is happening.
 > 
 > IS> Disable p4tcc if it's a modern CPU; that usually hurts more than helps.
 > IS> Disable polling if you're using that .. you haven't provided much info,
 > IS> like is this with any network load, despite nfe0 showing no interrupts?

 > Polling is ON. Traffice is about 60Mbit/s routed from nfe0 to vlan4 on rl0
 > when interrupts are happen traffic slow down to 25-30Mbit/s.

Out of my depth.  If it's a net problem - maybe not - you may do better 
in freebsd-net@ if you provide enough information (dmesg plus ifconfig, 
vmstat -i etc, normally and while this problem is happening).

 > There is no p4tcc option in KERNEL config file.

No, it can be enabled by cpufreq(4).  See dmesg for acpi_throttle or 
p4tcc, but it looks like you might not have device cpufreq in your 
kernel or loaded, or dev.cpu.0.freq and more would have shown below.

 > disable/enable polling does not help. situation still same.

 > sysctl -a | grep freq
 > kern.acct_chkfreq: 15
 > kern.timecounter.tc.i8254.frequency: 1193182
 > kern.timecounter.tc.ACPI-fast.frequency: 3579545
 > kern.timecounter.tc.TSC.frequency: 1809280975
 > net.inet.sctp.sack_freq: 2
 > debug.cpufreq.verbose: 0
 > debug.cpufreq.lowest: 0
 > machdep.acpi_timer_freq: 3579545
 > machdep.tsc_freq: 1809280975
 > machdep.i8254_freq: 1193182

Only useful for what it doesn't show :)

 >  >> How to obtain what nasty happen, which process take 36-50% of CPU
 >  >> resource?
 > 
 > IS> Try 'top -S'. It's almost certainly system process[es], not shown above.

Does that not show anything?  Also, something like 'ps auxww | less' 
should show you what's using all that CPU.  I'm out of wild clues.

cheers, Ian



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