[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440807221105s77372df8re2e59440a8f644bd@mail.gmail.com>
Date: Tue, 22 Jul 2008 11:05:17 -0700
From: "Yinghai Lu" <yhlu.kernel@...il.com>
To: "Suresh Siddha" <suresh.b.siddha@...el.com>
Cc: "Ingo Molnar" <mingo@...e.hu>,
"Thomas Gleixner" <tglx@...utronix.de>,
"H. Peter Anvin" <hpa@...or.com>, "Jack Steiner" <steiner@....com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
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@...el.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@...il.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists