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 /arch/ia64/kernel/setup.c | |
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 'arch/ia64/kernel/setup.c')
-rw-r--r-- | arch/ia64/kernel/setup.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 9e392a30d197..777c8d8bd5e7 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -528,10 +528,6 @@ setup_arch (char **cmdline_p) | |||
528 | 528 | ||
529 | #ifdef CONFIG_SMP | 529 | #ifdef CONFIG_SMP |
530 | cpu_physical_id(0) = hard_smp_processor_id(); | 530 | cpu_physical_id(0) = hard_smp_processor_id(); |
531 | |||
532 | cpu_set(0, cpu_sibling_map[0]); | ||
533 | cpu_set(0, cpu_core_map[0]); | ||
534 | |||
535 | check_for_logical_procs(); | 531 | check_for_logical_procs(); |
536 | if (smp_num_cpucores > 1) | 532 | if (smp_num_cpucores > 1) |
537 | printk(KERN_INFO | 533 | printk(KERN_INFO |
@@ -873,6 +869,14 @@ cpu_init (void) | |||
873 | void *cpu_data; | 869 | void *cpu_data; |
874 | 870 | ||
875 | cpu_data = per_cpu_init(); | 871 | cpu_data = per_cpu_init(); |
872 | /* | ||
873 | * insert boot cpu into sibling and core mapes | ||
874 | * (must be done after per_cpu area is setup) | ||
875 | */ | ||
876 | if (smp_processor_id() == 0) { | ||
877 | cpu_set(0, per_cpu(cpu_sibling_map, 0)); | ||
878 | cpu_set(0, cpu_core_map[0]); | ||
879 | } | ||
876 | 880 | ||
877 | /* | 881 | /* |
878 | * We set ar.k3 so that assembly code in MCA handler can compute | 882 | * We set ar.k3 so that assembly code in MCA handler can compute |