Re: [patch 2/2] Convert bigsmp to use flat physical mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 21, 2005 at 03:39:16PM -0800, Ashok Raj wrote:
> 
>    -       if ((num_processors > 8) &&
>    -           APIC_XAPIC(ver) &&
>    -           (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
>    +       if (APIC_XAPIC(ver) &&
>    +               (CPU_HOTPLUG_ENABLED ||
>    +               ((num_processors > 8) &&
>    +                                      (boot_cpu_data.x86_vendor    ==
>    X86_VENDOR_INTEL))))
>                    def_to_bigsmp = 1;

Noticed that Andi send one more patch do enable bigsmp for AMD (i386), and the 
APIC_XAPIC() check was not properly placed to factor this in. This updated
patch should work for AMD as well, and switch to bigsmp when we have hotplug 
enabled.

-- 
Cheers,
Ashok Raj
- Open Source Technology Center


If we are using hotplug enabled kernel, then make bigsmp the default mode.


Signed-off-by: Ashok Raj <[email protected]>
Signed-off-by: Venkatesh Pallipadi <[email protected]>
-------------------------------------------------------
 arch/i386/kernel/mpparse.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

Index: linux-2.6.15-rc1-mm2/arch/i386/kernel/mpparse.c
===================================================================
--- linux-2.6.15-rc1-mm2.orig/arch/i386/kernel/mpparse.c
+++ linux-2.6.15-rc1-mm2/arch/i386/kernel/mpparse.c
@@ -38,6 +38,12 @@
 int smp_found_config;
 unsigned int __initdata maxcpus = NR_CPUS;
 
+#ifdef CONFIG_HOTPLUG_CPU
+#define CPU_HOTPLUG_ENABLED	(1)
+#else
+#define CPU_HOTPLUG_ENABLED	(0)
+#endif
+
 /*
  * Various Linux-internal data structures created from the
  * MP-table.
@@ -219,13 +225,18 @@ static void __devinit MP_processor_info 
 	cpu_set(num_processors, cpu_possible_map);
 	num_processors++;
 
-	if ((num_processors > 8) &&
-	    APIC_XAPIC(ver) &&
-	    (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL))
-		def_to_bigsmp = 1;
-	else
-		def_to_bigsmp = 0;
-
+	if (CPU_HOTPLUG_ENABLED || (num_processors > 8)) {
+		switch (boot_cpu_data.x86_vendor) {
+			case X86_VENDOR_INTEL:
+				if (!APIC_XAPIC(ver)) {
+					def_to_bigsmp = 0;
+					break;
+				}
+				/* If P4 and above fall through */
+			case X86_VENDOR_AMD:
+				def_to_bigsmp = 1;
+		}
+	}
 	bios_cpu_apicid[num_processors - 1] = m->mpc_apicid;
 }
 
-
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/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux