[patch 4/4] Remove unnecessary cpu maps (available, present_at_boot)

nathanl at austin.ibm.com nathanl at austin.ibm.com
Sat Jul 31 07:46:11 EST 2004


With cpu_present_map, we don't need these any longer.

Signed-off-by: Nathan Lynch <nathanl at austin.ibm.com>


---


diff -puN include/asm-ppc64/smp.h~ppc64-remove-unnecessary-cpu-maps include/asm-ppc64/smp.h
--- 2.6.8-rc2-mm1/include/asm-ppc64/smp.h~ppc64-remove-unnecessary-cpu-maps	2004-07-30 16:38:12.000000000 -0500
+++ 2.6.8-rc2-mm1-nathanl/include/asm-ppc64/smp.h	2004-07-30 16:38:12.000000000 -0500
@@ -36,23 +36,6 @@ extern void smp_message_recv(int, struct
 #define smp_processor_id() (get_paca()->paca_index)
 #define hard_smp_processor_id() (get_paca()->hw_cpu_id)

-/*
- * Retrieve the state of a CPU:
- * online:          CPU is in a normal run state
- * possible:        CPU is a candidate to be made online
- * available:       CPU is candidate for the 'possible' pool
- *                  Used to get SMT threads started at boot time.
- * present_at_boot: CPU was available at boot time.  Used in DLPAR
- *                  code to handle special cases for processor start up.
- */
-extern cpumask_t cpu_present_at_boot;
-extern cpumask_t cpu_online_map;
-extern cpumask_t cpu_possible_map;
-extern cpumask_t cpu_available_map;
-
-#define cpu_present_at_boot(cpu) cpu_isset(cpu, cpu_present_at_boot)
-#define cpu_available(cpu)       cpu_isset(cpu, cpu_available_map)
-
 /* Since OpenPIC has only 4 IPIs, we use slightly different message numbers.
  *
  * Make sure this matches openpic_request_IPIs in open_pic.c, or what shows up
diff -puN arch/ppc64/kernel/prom.c~ppc64-remove-unnecessary-cpu-maps arch/ppc64/kernel/prom.c
--- 2.6.8-rc2-mm1/arch/ppc64/kernel/prom.c~ppc64-remove-unnecessary-cpu-maps	2004-07-30 16:38:12.000000000 -0500
+++ 2.6.8-rc2-mm1-nathanl/arch/ppc64/kernel/prom.c	2004-07-30 16:38:12.000000000 -0500
@@ -940,9 +940,7 @@ static void __init prom_hold_cpus(unsign
 			lpaca[cpuid].hw_cpu_id = reg;

 #ifdef CONFIG_SMP
-			cpu_set(cpuid, RELOC(cpu_available_map));
 			cpu_set(cpuid, RELOC(cpu_possible_map));
-			cpu_set(cpuid, RELOC(cpu_present_at_boot));
 			cpu_set(cpuid, RELOC(cpu_present_map));
 			if (reg == 0)
 				cpu_set(cpuid, RELOC(cpu_online_map));
@@ -1043,9 +1041,7 @@ static void __init prom_hold_cpus(unsign
 #ifdef CONFIG_SMP
 				/* Set the number of active processors. */
 				_systemcfg->processorCount++;
-				cpu_set(cpuid, RELOC(cpu_available_map));
 				cpu_set(cpuid, RELOC(cpu_possible_map));
-				cpu_set(cpuid, RELOC(cpu_present_at_boot));
 				cpu_set(cpuid, RELOC(cpu_present_map));
 #endif
 			} else {
@@ -1055,10 +1051,8 @@ static void __init prom_hold_cpus(unsign
 #ifdef CONFIG_SMP
 		else {
 			prom_printf("%x : booting  cpu %s\n", cpuid, path);
-			cpu_set(cpuid, RELOC(cpu_available_map));
 			cpu_set(cpuid, RELOC(cpu_possible_map));
 			cpu_set(cpuid, RELOC(cpu_online_map));
-			cpu_set(cpuid, RELOC(cpu_present_at_boot));
 			cpu_set(cpuid, RELOC(cpu_present_map));
 		}
 #endif
@@ -1073,8 +1067,6 @@ next:
 			prom_printf("%x : preparing thread ... ",
 				    interrupt_server[i]);
 			if (_naca->smt_state) {
-				cpu_set(cpuid, RELOC(cpu_available_map));
-				cpu_set(cpuid, RELOC(cpu_present_at_boot));
 				cpu_set(cpuid, RELOC(cpu_present_map));
 				cpu_set(cpuid, RELOC(cpu_possible_map));
 				_systemcfg->processorCount++;
diff -puN arch/ppc64/kernel/smp.c~ppc64-remove-unnecessary-cpu-maps arch/ppc64/kernel/smp.c
--- 2.6.8-rc2-mm1/arch/ppc64/kernel/smp.c~ppc64-remove-unnecessary-cpu-maps	2004-07-30 16:38:12.000000000 -0500
+++ 2.6.8-rc2-mm1-nathanl/arch/ppc64/kernel/smp.c	2004-07-30 16:38:12.000000000 -0500
@@ -62,8 +62,6 @@ unsigned long cache_decay_ticks;

 cpumask_t cpu_possible_map = CPU_MASK_NONE;
 cpumask_t cpu_online_map = CPU_MASK_NONE;
-cpumask_t cpu_available_map = CPU_MASK_NONE;
-cpumask_t cpu_present_at_boot = CPU_MASK_NONE;

 EXPORT_SYMBOL(cpu_online_map);
 EXPORT_SYMBOL(cpu_possible_map);
@@ -127,9 +125,7 @@ static int smp_iSeries_numProcs(void)
 	np = 0;
         for (i=0; i < NR_CPUS; ++i) {
                 if (paca[i].lppaca.xDynProcStatus < 2) {
-			cpu_set(i, cpu_available_map);
 			cpu_set(i, cpu_possible_map);
-			cpu_set(i, cpu_present_at_boot);
 			cpu_set(i, cpu_present_map);
                         ++np;
                 }
@@ -890,7 +886,7 @@ int __devinit __cpu_up(unsigned int cpu)
 	int c;

 	/* At boot, don't bother with non-present cpus -JSCHOPP */
-	if (system_state == SYSTEM_BOOTING && !cpu_present_at_boot(cpu))
+	if (system_state == SYSTEM_BOOTING && !cpu_present(cpu))
 		return -ENOENT;

 	paca[cpu].prof_counter = 1;
diff -puN arch/ppc64/kernel/xics.c~ppc64-remove-unnecessary-cpu-maps arch/ppc64/kernel/xics.c
--- 2.6.8-rc2-mm1/arch/ppc64/kernel/xics.c~ppc64-remove-unnecessary-cpu-maps	2004-07-30 16:38:12.000000000 -0500
+++ 2.6.8-rc2-mm1-nathanl/arch/ppc64/kernel/xics.c	2004-07-30 16:38:12.000000000 -0500
@@ -548,7 +548,7 @@ nextnode:
 #ifdef CONFIG_SMP
 		for_each_cpu(i) {
 			/* FIXME: Do this dynamically! --RR */
-			if (!cpu_present_at_boot(i))
+			if (!cpu_present(i))
 				continue;
 			xics_per_cpu[i] = __ioremap((ulong)inodes[get_hard_smp_processor_id(i)].addr,
 						    (ulong)inodes[get_hard_smp_processor_id(i)].size,

_

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list