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

From: Suresh Siddha
Date: Tue Jul 22 2008 - 13:58:23 EST


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'.

What am I missing here?

thanks,
suresh
--
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/