Re: [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
On Fri, Apr 01, 2005 at 12:37:27PM -0500, Jason Davis wrote: > Hello, > > x86_64 genapic mechanism should be aware of machines that use physical APIC > mode regardless of how many clusters/processors are detected. ACPI 3.0 FADT > makes this determination very simple by providing a feature flag > "force_apic_physical_destination_mode" to state whether the machine > unconditionally uses physical APIC mode. Unisys' next generation x86_64 > ES7000 will need to utilize this FADT feature flag in order to boot the > x86_64 kernel in the correct APIC mode. This patch has been tested on both > x86_64 commodity and ES7000 boxes. Patch is ok for me. -Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
On Fri, Apr 01, 2005 at 12:37:27PM -0500, Jason Davis wrote: Hello, x86_64 genapic mechanism should be aware of machines that use physical APIC mode regardless of how many clusters/processors are detected. ACPI 3.0 FADT makes this determination very simple by providing a feature flag force_apic_physical_destination_mode to state whether the machine unconditionally uses physical APIC mode. Unisys' next generation x86_64 ES7000 will need to utilize this FADT feature flag in order to boot the x86_64 kernel in the correct APIC mode. This patch has been tested on both x86_64 commodity and ES7000 boxes. Patch is ok for me. -Andi - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
Hello, x86_64 genapic mechanism should be aware of machines that use physical APIC mode regardless of how many clusters/processors are detected. ACPI 3.0 FADT makes this determination very simple by providing a feature flag "force_apic_physical_destination_mode" to state whether the machine unconditionally uses physical APIC mode. Unisys' next generation x86_64 ES7000 will need to utilize this FADT feature flag in order to boot the x86_64 kernel in the correct APIC mode. This patch has been tested on both x86_64 commodity and ES7000 boxes. Signed-off-by: Jason Davis <[EMAIL PROTECTED]> diff -Naurp linux-2.6.12-rc1-mm4/arch/i386/kernel/acpi/boot.c linux-2.6.12-rc1-mm4-genapic/arch/i386/kernel/acpi/boot.c --- linux-2.6.12-rc1-mm4/arch/i386/kernel/acpi/boot.c 2005-03-02 02:38:25.0 -0500 +++ linux-2.6.12-rc1-mm4-genapic/arch/i386/kernel/acpi/boot.c 2005-03-31 18:15:09.606679144 -0500 @@ -608,6 +608,10 @@ static int __init acpi_parse_fadt(unsign acpi_fadt.sci_int = fadt->sci_int; #endif + /* initialize rev and apic_phys_dest_mode for x86_64 genapic */ + acpi_fadt.revision = fadt->revision; + acpi_fadt.force_apic_physical_destination_mode = fadt->force_apic_physical_destination_mode; + #ifdef CONFIG_X86_PM_TIMER /* detect the location of the ACPI PM Timer */ if (fadt->revision >= FADT2_REVISION_ID) { diff -Naurp linux-2.6.12-rc1-mm4/arch/x86_64/kernel/genapic.c linux-2.6.12-rc1-mm4-genapic/arch/x86_64/kernel/genapic.c --- linux-2.6.12-rc1-mm4/arch/x86_64/kernel/genapic.c 2005-03-02 02:38:37.0 -0500 +++ linux-2.6.12-rc1-mm4-genapic/arch/x86_64/kernel/genapic.c 2005-03-31 18:15:09.607678992 -0500 @@ -20,6 +20,10 @@ #include #include +#if defined(CONFIG_ACPI_BUS) +#include +#endif + /* which logical CPU number maps to which CPU (physical APIC ID) */ u8 x86_cpu_to_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; EXPORT_SYMBOL(x86_cpu_to_apicid); @@ -47,6 +51,18 @@ void __init clustered_apic_check(void) goto print; } +#if defined(CONFIG_ACPI_BUS) + /* +* Some x86_64 machines use physical APIC mode regardless of how many +* procs/clusters are present (x86_64 ES7000 is an example). +*/ + if (acpi_fadt.revision > FADT2_REVISION_ID) + if (acpi_fadt.force_apic_physical_destination_mode) { + genapic = _cluster; + goto print; + } +#endif + memset(cluster_cnt, 0, sizeof(cluster_cnt)); for (i = 0; i < NR_CPUS; i++) { - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
Hello, x86_64 genapic mechanism should be aware of machines that use physical APIC mode regardless of how many clusters/processors are detected. ACPI 3.0 FADT makes this determination very simple by providing a feature flag force_apic_physical_destination_mode to state whether the machine unconditionally uses physical APIC mode. Unisys' next generation x86_64 ES7000 will need to utilize this FADT feature flag in order to boot the x86_64 kernel in the correct APIC mode. This patch has been tested on both x86_64 commodity and ES7000 boxes. Signed-off-by: Jason Davis [EMAIL PROTECTED] diff -Naurp linux-2.6.12-rc1-mm4/arch/i386/kernel/acpi/boot.c linux-2.6.12-rc1-mm4-genapic/arch/i386/kernel/acpi/boot.c --- linux-2.6.12-rc1-mm4/arch/i386/kernel/acpi/boot.c 2005-03-02 02:38:25.0 -0500 +++ linux-2.6.12-rc1-mm4-genapic/arch/i386/kernel/acpi/boot.c 2005-03-31 18:15:09.606679144 -0500 @@ -608,6 +608,10 @@ static int __init acpi_parse_fadt(unsign acpi_fadt.sci_int = fadt-sci_int; #endif + /* initialize rev and apic_phys_dest_mode for x86_64 genapic */ + acpi_fadt.revision = fadt-revision; + acpi_fadt.force_apic_physical_destination_mode = fadt-force_apic_physical_destination_mode; + #ifdef CONFIG_X86_PM_TIMER /* detect the location of the ACPI PM Timer */ if (fadt-revision = FADT2_REVISION_ID) { diff -Naurp linux-2.6.12-rc1-mm4/arch/x86_64/kernel/genapic.c linux-2.6.12-rc1-mm4-genapic/arch/x86_64/kernel/genapic.c --- linux-2.6.12-rc1-mm4/arch/x86_64/kernel/genapic.c 2005-03-02 02:38:37.0 -0500 +++ linux-2.6.12-rc1-mm4-genapic/arch/x86_64/kernel/genapic.c 2005-03-31 18:15:09.607678992 -0500 @@ -20,6 +20,10 @@ #include asm/smp.h #include asm/ipi.h +#if defined(CONFIG_ACPI_BUS) +#include acpi/acpi_bus.h +#endif + /* which logical CPU number maps to which CPU (physical APIC ID) */ u8 x86_cpu_to_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; EXPORT_SYMBOL(x86_cpu_to_apicid); @@ -47,6 +51,18 @@ void __init clustered_apic_check(void) goto print; } +#if defined(CONFIG_ACPI_BUS) + /* +* Some x86_64 machines use physical APIC mode regardless of how many +* procs/clusters are present (x86_64 ES7000 is an example). +*/ + if (acpi_fadt.revision FADT2_REVISION_ID) + if (acpi_fadt.force_apic_physical_destination_mode) { + genapic = apic_cluster; + goto print; + } +#endif + memset(cluster_cnt, 0, sizeof(cluster_cnt)); for (i = 0; i NR_CPUS; i++) { - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/