Re: svn commit: r233961 - head/sys/x86/x86

[ Available lists | Index of svn-src-head | Month of Apr 2012 | Week of 9 Apr 2012 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Nathan Whitehorn <nwhitehorn@freebsd.org>
Date
9 Apr 2012 15:51:37
Subject
Re: svn commit: r233961 - head/sys/x86/x86
Message-ID
4F83057F.80808@freebsd.org


[ Hide this part ]
On 04/09/12 10:45, Jaakko Heinonen wrote:
> Hi,
>
> On 2012-04-06, Justin T. Gibbs wrote:
>> Fix interrupt load balancing regression, introduced in revision
>> 222813, that left all un-pinned interrupts assigned to CPU 0.
>>
>> sys/x86/x86/intr_machdep.c:
>> In intr_shuffle_irqs(), remove CPU_SETOF() call that initialized
>> the "intr_cpus" cpuset to only contain CPU0.
>>
>> This initialization is too late and nullifies the results of calls
>> the intr_add_cpu() that occur much earlier in the boot process.
>> Since "intr_cpus" is statically initialized to the empty set, and
>> all processors, including the BSP, already add themselves to
>> "intr_cpus" no special initialization for the BSP is necessary.
> My Pentium 4 system hangs on boot after this commit. These are the last
> lines from a verbose boot:
>
> SMP: AP CPU #1 Launched!
> cpu1 AP:
> ID: 0x01000000 VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
> lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
> timer: 0x000100ef therm: 0x00010000 err: 0x000000f0 pmc: 0x00010400

For whatever it's worth, I had a similar problem on PPC with interrupt
distribution where interrupts were going very early in boot to non-BSP
CPUs before they were launched, and so getting lost.
-Nathan

Elapsed time: 0.091 seconds