Re: [patch] x86: 2.6.31-rc7 crash due to buggy flat_phys_pkg_id

Ravikiran G Thirumalai
2009-08-25T20:36:46Z

On Tue, Aug 25, 2009 at 09:24:16PM +0200, Ingo Molnar wrote:
>> ...
>> > Furthermore, commit 2759c3287 did not declare any side-effects and
>> > clearly causes a side-effect on vSMP which apparently has an
>> > overlapping set of initial APIC ids.
>> >
>> > Ravikiran, your patch does not do a clear revert of this bit though.
>> > If you do a plain revert of the line above alone, does that fix the
>> > problem too?
>>
>> how about patch phys_pkg_id for vsmp?
>>
>> diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
>> index f3b1037..65edc18 100644
>> --- a/arch/x86/kernel/apic/probe_64.c
>> +++ b/arch/x86/kernel/apic/probe_64.c
>> @@ -44,6 +44,11 @@ static struct apic *apic_probe[] __initdata = {
>> NULL,
>> };
>>
>> +static int apicid_phys_pkg_id(int initial_apic_id, int index_msb)
>> +{
>> + return hard_smp_processor_id() >> index_msb;
>> +}
>> +
>> /*
>> * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode.
>> */
>> @@ -69,6 +74,11 @@ void __init default_setup_apic_routing(void)
>> printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
>> }
>>
>> + if (is_vsmp_box()) {
>> + /* need to update phys_pkg_id */
>> + apic->phys_pkg_id = apicid_phys_pkg_id;
>> + }
>
>Hm, this is rather tempting simply because it only affects vSMP
>systems and we are in late -rc's. Ravikiran, does Yinghai's patch
>solve the crash for you too?
>

Yes it does. Tested and confirmed.

Thanks,
Kiran