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>