Messages in this thread | | | Date | Tue, 22 Jul 2008 11:05:17 -0700 | From | "Yinghai Lu" <> | Subject | Re: [PATCH] x86: add apic probe for genapic 64bit v2 |
| |
On Tue, Jul 22, 2008 at 10:57 AM, Suresh Siddha <suresh.b.siddha@intel.com> 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@gmail.com> >> 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
| |