Re: [patch 070/198] x86_64 genapic update

2005-04-18 Thread Andi Kleen
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

2005-04-18 Thread Andi Kleen
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

2005-04-17 Thread Chris Wedgwood
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/


Re: [patch 070/198] x86_64 genapic update

2005-04-17 Thread Chris Wedgwood
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

2005-04-12 Thread akpm

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 = _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 070/198] x86_64 genapic update

2005-04-12 Thread akpm

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 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/