Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jan 2008 11:35:52 -0800
From:      Tech Lab Manager <tech@liveoaksf.org>
To:        Nate Lawson <nate@root.org>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: SMP, ACPI and interrupt storm
Message-ID:  <8EE3D963-E390-4F45-A1D1-2295C1767B80@liveoaksf.org>
In-Reply-To: <47A217FC.1080606@root.org>
References:  <429F40B0-20EE-4F47-847A-A6B1E91BA79F@liveoaksf.org> <47A217FC.1080606@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 31, 2008, at 10:48 AM, Nate Lawson wrote:

> 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: acpi0
>> 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  
> controller).  Try:
>  hint.acpi.0.disabled=1

Sorry, my mistake in writing ACPI above -- I *was* trying to turn off  
apic, based on a note in the FreeBSD handbook.

Disabling ACPI as you suggest above has the same effect as turning  
off APIC: the interrupt storm is disabled but only one CPU is launched.

>
>> 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 immediately).
>
> 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.

okay, I'm on RC1, will switch to RELENG and report back.

I'm not sure if this is a red herring, but acpidump -t reports:

Type=INT Override
         BUS=0
         IRQ=0
         INTR=2
         Flags={Polarity=conforming, Trigger=conforming}

which looks wrong on several counts (IRQ, INTR should be 9,  
Trigger=level). dmesg even says:
"MADT: Forcing active-low polarity and level trigger for SCI"

Thanks for your help.
John

>
> -- 
> Nate

-- 
John Berliner
Live Oak School



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8EE3D963-E390-4F45-A1D1-2295C1767B80>