SMP, ACPI and interrupt storm
nate at root.org
Thu Jan 31 10:48:34 PST 2008
Tech Lab Manager wrote:
> Sorry for the cross-post from freebsd-smb.
> Building 6.3-RELEASE and 7.0-RC1 on dual Xeon (4 CPU) boxes:
> options SMP
> device apic
> SMP kernel builds fine, all 4 CPUs launch on reboot.
> But I get a TON of interrupts from acpi0 -- about 67,000 per second
> according to vmstat -i. With system at idle and almost no services
> running, here is output of top -S:
> last pid: 877; load averages: 1.18, 0.48, 0.19
> 75 processes: 6 running, 54 sleeping, 15 waiting
> CPU states: 0.0% user, 0.0% nice, 0.2% system, 22.4% interrupt,
> 77.4% idle
> Mem: 31M Active, 12M Inact, 28M Wired, 16K Cache, 15M Buf, 3822M Free
> Swap: 4096M Total, 4096M Free
> PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> 10 root 1 171 52 0K 8K RUN 3 1:11 99.18% idle: cpu3
> 13 root 1 171 52 0K 8K CPU0 0 1:10 98.88% idle: cpu0
> 12 root 1 171 52 0K 8K CPU1 1 1:09 98.78% idle: cpu1
> 21 root 1 -52 -171 0K 8K CPU2 2 0:54 87.24% irq9:
> 11 root 1 171 52 0K 8K RUN 2 0:17 11.19% idle: cpu2
> Notice high load and interrupt % of CPU.
> If turn off ACPI (e.g. set hint.apic.0.disabled=1 in /boot/loader.conf),
> the interrupt storm ceases, but then I'm only running on one CPU.
That doesn't turn off acpi, that turns of the APIC (interrupt
> The BIOS ACPI settings are all Enabled. Hyperthreading is Enabled.
> These machines have been running RedHat Enterprise 5.0 with full
> multiprocessor support.
This looks like a failure to sleep in C1 (hlt). Someone else reported
this probably earlier, but all debugging showed the inexplicable -- the
HLT instruction was being executed but just did not work (returned
There will be a new 7.0 build that fixes one interrupt storm related to
level-triggered GPEs. If you can cvsup your 7.0 branch (RELENG_7_0) and
retry, that might be helpful to see if it also fixes your problem.
More information about the freebsd-acpi