Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e72c8585 authored by Ashok Raj's avatar Ashok Raj Committed by Linus Torvalds
Browse files

[PATCH] make bigsmp the default mode if CONFIG_HOTPLUG_CPU



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

Signed-off-by: default avatarAshok Raj <ashok.raj@intel.com>
Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1855a2c4
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -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,14 +225,18 @@ static void __devinit MP_processor_info (struct mpc_config_processor *m)
	cpu_set(num_processors, cpu_possible_map);
	num_processors++;

	if ((num_processors > 8) &&
	    ((APIC_XAPIC(ver) &&
	     (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL)) ||
	     (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)))
		def_to_bigsmp = 1;
	else
	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;
}