Date: Wed, 30 Jan 2008 18:16:10 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-smp@freebsd.org Cc: Tech Lab Manager <tech@liveoaksf.org> Subject: Re: SMP and interrupt storm Message-ID: <200801301816.10279.jhb@freebsd.org> In-Reply-To: <7D3DA805-4C15-48D1-939C-ECC6D80A014E@liveoaksf.org> References: <7D3DA805-4C15-48D1-939C-ECC6D80A014E@liveoaksf.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 30 January 2008 12:44:38 pm Tech Lab Manager wrote: > Hello, > > Sorry for the semi-cross-post from freebsd-questions but I didn't get > any bites there. > > Building 6.3-RELEASE 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 with 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: acpi0 > 11 root 1 171 52 0K 8K RUN 2 0:17 11.19% > idle: cpu2 > > Notice high load and interrupt %. > Same thing happened with 7.0-RELEASE_BETA4. > > If turn off ACPI (set hint.apic.0.disabled=1 in /boot/loader.conf), > the interrupt storm ceases, but then I'm only running on one CPU. > > The BIOS ACPI settings are all Enabled. Hyperthreading is Enabled. > These machines have been running RedHat Enterprise 5.0 with full > multiprocessor support. > > Any pointers? TIA. > -- John Try freebsd-acpi@ perhaps. Are there any other devices on IRQ 9 besides acpi0? You can also try messing with the trigger mode of the ACPI interrupt via tunables IIRC (i.e. maybe it is set to edge and needs to be level). You can use the hw.acpi.sci.polarity ("hi" or "low") and hw.acpi.sci.trigger ("edge" or "level") to tweak this. You can use 'acpidump -t' to see if you have interrupt override entry for IRQ 9 to see if it's set to do the wrong thing. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801301816.10279.jhb>