ia64: convert to dynamic percpu allocator
authorTejun Heo <tj@kernel.org>
Fri, 2 Oct 2009 04:28:56 +0000 (13:28 +0900)
committerTejun Heo <tj@kernel.org>
Fri, 2 Oct 2009 04:28:56 +0000 (13:28 +0900)
commit52594762a39dfb6338c9d0906ca21dd9ae9453be
tree4c80dd59ec452c9fe798edf3f4023914c1898a0b
parent36886478f59ec0fdc24a8877c572b92f8d416aba
ia64: convert to dynamic percpu allocator

Unlike other archs, ia64 reserves space for percpu areas during early
memory initialization.  These areas occupy a contiguous region indexed
by cpu number on contiguous memory model or are grouped by node on
discontiguous memory model.

As allocation and initialization are done by the arch code, all that
setup_per_cpu_areas() needs to do is communicating the determined
layout to the percpu allocator.  This patch implements
setup_per_cpu_areas() for both contig and discontig memory models and
drops HAVE_LEGACY_PER_CPU_AREA.

Please note that for contig model, the allocation itself is modified
only to allocate for possible cpus instead of NR_CPUS.  As dynamic
percpu allocator can handle non-direct mapping, there's no reason to
allocate memory for cpus which aren't possible.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Tony Luck <tony.luck@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: linux-ia64 <linux-ia64@vger.kernel.org>
arch/ia64/Kconfig
arch/ia64/kernel/setup.c
arch/ia64/mm/contig.c
arch/ia64/mm/discontig.c