x86: convert cpu_to_apicid to be a per cpu variable
authorMike Travis <travis@sgi.com>
Fri, 19 Oct 2007 18:35:03 +0000 (20:35 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 19 Oct 2007 18:35:03 +0000 (20:35 +0200)
commit71fff5e6ca1b738ac4742580e4c0ff79d906f6c8
tree390e67123d684ab7f490291db987e097e5b3c728
parentdbeb2be21d678c49a8d8bbf774903df15dd55474
x86: convert cpu_to_apicid to be a per cpu variable

This patch converts the x86_cpu_to_apicid array to be a per cpu
variable. This saves sizeof(apicid) * NR unused cpus.  Access is mostly
from startup and CPU HOTPLUG functions.

MP_processor_info() is one of the functions that require access to the
x86_cpu_to_apicid array before the per_cpu data area is setup.  For this
case, a pointer to the __initdata array is initialized in setup_arch()
and removed in smp_prepare_cpus() after the per_cpu data area is
initialized.

A second change is included to change the initial array value of ARCH
i386 from 0xff to BAD_APICID to be consistent with ARCH x86_64.

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>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
12 files changed:
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/genapic_64.c
arch/x86/kernel/genapic_flat_64.c
arch/x86/kernel/mpparse_64.c
arch/x86/kernel/setup_64.c
arch/x86/kernel/smp_32.c
arch/x86/kernel/smpboot_32.c
arch/x86/kernel/smpboot_64.c
arch/x86/mm/numa_64.c
include/asm-x86/ipi.h
include/asm-x86/smp_32.h
include/asm-x86/smp_64.h