aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc
diff options
context:
space:
mode:
authorMike Travis <travis@sgi.com>2007-10-16 04:24:05 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:42:50 -0400
commitd5a7430ddcdb598261d70f7eb1bf450b5be52085 (patch)
tree3b94672e0dbc2bff125de3266908f1a47a17b795 /include/asm-powerpc
parent083576112940fda783d716fd5ccc744f81667b2f (diff)
Convert cpu_sibling_map to be a per cpu variable
Convert cpu_sibling_map from a static array sized by NR_CPUS to a per_cpu variable. This saves sizeof(cpumask_t) * NR unused cpus. Access is mostly from startup and CPU HOTPLUG functions. Signed-off-by: Mike Travis <travis@sgi.com> Cc: Andi Kleen <ak@suse.de> Cc: Christoph Lameter <clameter@sgi.com> Cc: "Siddha, Suresh B" <suresh.b.siddha@intel.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-powerpc')
-rw-r--r--include/asm-powerpc/smp.h4
-rw-r--r--include/asm-powerpc/topology.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/include/asm-powerpc/smp.h b/include/asm-powerpc/smp.h
index 19102bfc14ca..505f35bacaa9 100644
--- a/include/asm-powerpc/smp.h
+++ b/include/asm-powerpc/smp.h
@@ -26,6 +26,7 @@
26#ifdef CONFIG_PPC64 26#ifdef CONFIG_PPC64
27#include <asm/paca.h> 27#include <asm/paca.h>
28#endif 28#endif
29#include <asm/percpu.h>
29 30
30extern int boot_cpuid; 31extern int boot_cpuid;
31 32
@@ -58,7 +59,7 @@ extern int smp_hw_index[];
58 (smp_hw_index[(cpu)] = (phys)) 59 (smp_hw_index[(cpu)] = (phys))
59#endif 60#endif
60 61
61extern cpumask_t cpu_sibling_map[NR_CPUS]; 62DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
62 63
63/* Since OpenPIC has only 4 IPIs, we use slightly different message numbers. 64/* Since OpenPIC has only 4 IPIs, we use slightly different message numbers.
64 * 65 *
@@ -77,6 +78,7 @@ void smp_init_pSeries(void);
77void smp_init_cell(void); 78void smp_init_cell(void);
78void smp_init_celleb(void); 79void smp_init_celleb(void);
79void smp_setup_cpu_maps(void); 80void smp_setup_cpu_maps(void);
81void smp_setup_cpu_sibling_map(void);
80 82
81extern int __cpu_disable(void); 83extern int __cpu_disable(void);
82extern void __cpu_die(unsigned int cpu); 84extern void __cpu_die(unsigned int cpu);
diff --git a/include/asm-powerpc/topology.h b/include/asm-powerpc/topology.h
index 0ad21a849b5f..ca23b681ad05 100644
--- a/include/asm-powerpc/topology.h
+++ b/include/asm-powerpc/topology.h
@@ -108,7 +108,7 @@ static inline void sysfs_remove_device_from_node(struct sys_device *dev,
108#ifdef CONFIG_PPC64 108#ifdef CONFIG_PPC64
109#include <asm/smp.h> 109#include <asm/smp.h>
110 110
111#define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) 111#define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu))
112#endif 112#endif
113#endif 113#endif
114 114