Re: [patch 070/198] x86_64 genapic update
On Sat, Apr 16, 2005 at 11:27:26PM -0700, Chris Wedgwood wrote: > On Tue, Apr 12, 2005 at 03:31:41AM -0700, [EMAIL PROTECTED] wrote: > > > diff -puN arch/i386/kernel/acpi/boot.c~x86_64-genapic-update > > arch/i386/kernel/acpi/boot.c > > --- 25/arch/i386/kernel/acpi/boot.c~x86_64-genapic-update 2005-04-12 > > 03:21:20.212064200 -0700 > > +++ 25-akpm/arch/i386/kernel/acpi/boot.c2005-04-12 03:21:20.217063440 > > -0700 > > @@ -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; > > + > > This breaks for me. It seems acpi_fadt needs CONFIG_ACPI_BUS. How > does this look? Looks good, thanks. Linus, can you please add it? Thanks. -Andi > > Signed-off-By: Chris Wedgwood <[EMAIL PROTECTED]> > > Index: cw-current/arch/i386/kernel/acpi/boot.c > === > --- cw-current.orig/arch/i386/kernel/acpi/boot.c 2005-04-16 > 20:17:09.801272343 -0700 > +++ cw-current/arch/i386/kernel/acpi/boot.c 2005-04-16 23:24:59.014298068 > -0700 > @@ -608,9 +608,11 @@ > acpi_fadt.sci_int = fadt->sci_int; > #endif > > +#ifdef CONFIG_ACPI_BUS > /* 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; > +#endif > > #ifdef CONFIG_X86_PM_TIMER > /* detect the location of the ACPI PM Timer */ > > - 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 070/198] x86_64 genapic update
On Tue, Apr 12, 2005 at 03:31:41AM -0700, [EMAIL PROTECTED] wrote: > diff -puN arch/i386/kernel/acpi/boot.c~x86_64-genapic-update > arch/i386/kernel/acpi/boot.c > --- 25/arch/i386/kernel/acpi/boot.c~x86_64-genapic-update 2005-04-12 > 03:21:20.212064200 -0700 > +++ 25-akpm/arch/i386/kernel/acpi/boot.c 2005-04-12 03:21:20.217063440 > -0700 > @@ -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; > + This breaks for me. It seems acpi_fadt needs CONFIG_ACPI_BUS. How does this look? Signed-off-By: Chris Wedgwood <[EMAIL PROTECTED]> Index: cw-current/arch/i386/kernel/acpi/boot.c === --- cw-current.orig/arch/i386/kernel/acpi/boot.c2005-04-16 20:17:09.801272343 -0700 +++ cw-current/arch/i386/kernel/acpi/boot.c 2005-04-16 23:24:59.014298068 -0700 @@ -608,9 +608,11 @@ acpi_fadt.sci_int = fadt->sci_int; #endif +#ifdef CONFIG_ACPI_BUS /* 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; +#endif #ifdef CONFIG_X86_PM_TIMER /* detect the location of the ACPI PM Timer */ - 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 070/198] x86_64 genapic update
From: Jason Davis <[EMAIL PROTECTED]> 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]> Acked-by: Andi Kleen <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> --- 25-akpm/arch/i386/kernel/acpi/boot.c |4 25-akpm/arch/x86_64/kernel/genapic.c | 16 2 files changed, 20 insertions(+) diff -puN arch/i386/kernel/acpi/boot.c~x86_64-genapic-update arch/i386/kernel/acpi/boot.c --- 25/arch/i386/kernel/acpi/boot.c~x86_64-genapic-update 2005-04-12 03:21:20.212064200 -0700 +++ 25-akpm/arch/i386/kernel/acpi/boot.c2005-04-12 03:21:20.217063440 -0700 @@ -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 -puN arch/x86_64/kernel/genapic.c~x86_64-genapic-update arch/x86_64/kernel/genapic.c --- 25/arch/x86_64/kernel/genapic.c~x86_64-genapic-update 2005-04-12 03:21:20.214063896 -0700 +++ 25-akpm/arch/x86_64/kernel/genapic.c2005-04-12 03:21:20.218063288 -0700 @@ -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 = &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/