mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
@ 2005-04-01 17:37 Jason Davis
  2005-04-05 17:16 ` Andi Kleen
  0 siblings, 1 reply; 2+ messages in thread
From: Jason Davis @ 2005-04-01 17:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, Andi Kleen, Jason Davis

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 <jason.davis@unisys.com>

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.000000000 -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.000000000 -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++) {

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update
  2005-04-01 17:37 [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update Jason Davis
@ 2005-04-05 17:16 ` Andi Kleen
  0 siblings, 0 replies; 2+ messages in thread
From: Andi Kleen @ 2005-04-05 17:16 UTC (permalink / raw)
  To: Jason Davis; +Cc: linux-kernel, Andrew Morton, Andi Kleen, Jason Davis

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-04-05 17:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-01 17:37 [PATCH] 2.6.12-rc1-mm4 x86_64 genapic update Jason Davis
2005-04-05 17:16 ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®