Re: [PATCH] x86: add apic probe for genapic 64bit v2

From: Yinghai Lu
Date: Tue Jul 22 2008 - 14:05:31 EST


On Tue, Jul 22, 2008 at 10:57 AM, Suresh Siddha
<suresh.b.siddha@xxxxxxxxx> wrote:
> On Mon, Jul 21, 2008 at 10:08:21PM -0700, Yinghai Lu wrote:
>>
>> Index: linux-2.6/arch/x86/kernel/genapic_64.c
>> ===================================================================
>> --- linux-2.6.orig/arch/x86/kernel/genapic_64.c
>> +++ linux-2.6/arch/x86/kernel/genapic_64.c
>> - genapic = &apic_x2apic_cluster;
> ...
>
>> - } else
>> -#ifdef CONFIG_ACPI
>> - /*
>> - * Quirk: some x86_64 machines can only use physical APIC mode
>> - * regardless of how many processors are present (x86_64 ES7000
>> - * is an example).
>> - */
>> - if (acpi_gbl_FADT.header.revision > FADT2_REVISION_ID &&
>> - (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL))
>> - genapic = &apic_physflat;
>> - else
>> -#endif
>> -
>> - if (max_physical_apicid < 8)
>> - genapic = &apic_flat;
>> - else
>> - genapic = &apic_physflat;
>> -
>> - printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name);
>> + if (genapic == &apic_flat) {
>> + if (max_physical_apicid >= 8)
>
> Yinghai, though not directly realted to this probe cleanup, what is this
> 'max_physical_apicid' doing.
>
> I don't understand the need for this commit.
>
>> commit e0da33646826b66ef933d47ea2fb7a693fd849bf
>> Author: Yinghai Lu <yhlu.kernel@xxxxxxxxx>
>> Date: Sun Jun 8 18:29:22 2008 -0700
>>
>> x86: introduce max_physical_apicid for bigsmp switching
>>
>> a multi-socket test-system with 3 or 4 ioapics, when 4 dualcore cpus or
>> 2 quadcore cpus installed, needs to switch to bigsmp or physflat.
>>
>> CPU apic id is [4,11] instead of [0,7], and we need to check max apic
>> id instead of cpu numbers.
>
> for logical flat, it really shouldn't matter how large the physical apic id
> is. In logical flat, OS programs the LDR and the limitation is the
> number of cpu's which is '8'.

before i clean up 32bit, 64bit already used max_physical_apicid to
check if need to switch to physflat.

for 32bit, if not switch to bigsmp, cpu with physical apic id >=8 can
not be started by BSP.

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/