How to obtain which interrupts cause system to hang?
four.harrisons at googlemail.com
four.harrisons at googlemail.com
Mon Oct 11 08:43:04 UTC 2010
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
_______________________________________________
freebsd-questions at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
More information about the freebsd-questions
mailing list