diff options
author | Mike Travis <travis@sgi.com> | 2007-10-16 04:24:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:42:50 -0400 |
commit | d5a7430ddcdb598261d70f7eb1bf450b5be52085 (patch) | |
tree | 3b94672e0dbc2bff125de3266908f1a47a17b795 /include/asm-x86 | |
parent | 083576112940fda783d716fd5ccc744f81667b2f (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-x86')
-rw-r--r-- | include/asm-x86/smp_32.h | 2 | ||||
-rw-r--r-- | include/asm-x86/smp_64.h | 6 | ||||
-rw-r--r-- | include/asm-x86/topology_32.h | 2 | ||||
-rw-r--r-- | include/asm-x86/topology_64.h | 2 |
4 files changed, 7 insertions, 5 deletions
diff --git a/include/asm-x86/smp_32.h b/include/asm-x86/smp_32.h index 01ab31bb262a..955dd7c8538f 100644 --- a/include/asm-x86/smp_32.h +++ b/include/asm-x86/smp_32.h | |||
@@ -30,7 +30,7 @@ | |||
30 | extern void smp_alloc_memory(void); | 30 | extern void smp_alloc_memory(void); |
31 | extern int pic_mode; | 31 | extern int pic_mode; |
32 | extern int smp_num_siblings; | 32 | extern int smp_num_siblings; |
33 | extern cpumask_t cpu_sibling_map[]; | 33 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); |
34 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); | 34 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); |
35 | 35 | ||
36 | extern void (*mtrr_hook) (void); | 36 | extern void (*mtrr_hook) (void); |
diff --git a/include/asm-x86/smp_64.h b/include/asm-x86/smp_64.h index 65f844864415..f5bcee1c0927 100644 --- a/include/asm-x86/smp_64.h +++ b/include/asm-x86/smp_64.h | |||
@@ -38,12 +38,14 @@ extern void unlock_ipi_call_lock(void); | |||
38 | extern int smp_num_siblings; | 38 | extern int smp_num_siblings; |
39 | extern void smp_send_reschedule(int cpu); | 39 | extern void smp_send_reschedule(int cpu); |
40 | 40 | ||
41 | extern cpumask_t cpu_sibling_map[NR_CPUS]; | ||
42 | /* | 41 | /* |
43 | * cpu_core_map lives in a per cpu area | 42 | * cpu_sibling_map and cpu_core_map now live |
43 | * in the per cpu area | ||
44 | * | 44 | * |
45 | * extern cpumask_t cpu_sibling_map[NR_CPUS]; | ||
45 | * extern cpumask_t cpu_core_map[NR_CPUS]; | 46 | * extern cpumask_t cpu_core_map[NR_CPUS]; |
46 | */ | 47 | */ |
48 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | ||
47 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); | 49 | DECLARE_PER_CPU(cpumask_t, cpu_core_map); |
48 | extern u8 cpu_llc_id[NR_CPUS]; | 50 | extern u8 cpu_llc_id[NR_CPUS]; |
49 | 51 | ||
diff --git a/include/asm-x86/topology_32.h b/include/asm-x86/topology_32.h index 7b68dbcd0eb0..ae1074603c4b 100644 --- a/include/asm-x86/topology_32.h +++ b/include/asm-x86/topology_32.h | |||
@@ -31,7 +31,7 @@ | |||
31 | #define topology_physical_package_id(cpu) (cpu_data[cpu].phys_proc_id) | 31 | #define topology_physical_package_id(cpu) (cpu_data[cpu].phys_proc_id) |
32 | #define topology_core_id(cpu) (cpu_data[cpu].cpu_core_id) | 32 | #define topology_core_id(cpu) (cpu_data[cpu].cpu_core_id) |
33 | #define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) | 33 | #define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) |
34 | #define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) | 34 | #define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu)) |
35 | #endif | 35 | #endif |
36 | 36 | ||
37 | #ifdef CONFIG_NUMA | 37 | #ifdef CONFIG_NUMA |
diff --git a/include/asm-x86/topology_64.h b/include/asm-x86/topology_64.h index b8590dff34c8..848c17f92226 100644 --- a/include/asm-x86/topology_64.h +++ b/include/asm-x86/topology_64.h | |||
@@ -59,7 +59,7 @@ extern int __node_distance(int, int); | |||
59 | #define topology_physical_package_id(cpu) (cpu_data[cpu].phys_proc_id) | 59 | #define topology_physical_package_id(cpu) (cpu_data[cpu].phys_proc_id) |
60 | #define topology_core_id(cpu) (cpu_data[cpu].cpu_core_id) | 60 | #define topology_core_id(cpu) (cpu_data[cpu].cpu_core_id) |
61 | #define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) | 61 | #define topology_core_siblings(cpu) (per_cpu(cpu_core_map, cpu)) |
62 | #define topology_thread_siblings(cpu) (cpu_sibling_map[cpu]) | 62 | #define topology_thread_siblings(cpu) (per_cpu(cpu_sibling_map, cpu)) |
63 | #define mc_capable() (boot_cpu_data.x86_max_cores > 1) | 63 | #define mc_capable() (boot_cpu_data.x86_max_cores > 1) |
64 | #define smt_capable() (smp_num_siblings > 1) | 64 | #define smt_capable() (smp_num_siblings > 1) |
65 | #endif | 65 | #endif |