1
linux/arch/ia64
Tejun Heo e74e396204 percpu: use dynamic percpu allocator as the default percpu allocator
This patch makes most !CONFIG_HAVE_SETUP_PER_CPU_AREA archs use
dynamic percpu allocator.  The first chunk is allocated using
embedding helper and 8k is reserved for modules.  This ensures that
the new allocator behaves almost identically to the original allocator
as long as static percpu variables are concerned, so it shouldn't
introduce much breakage.

s390 and alpha use custom SHIFT_PERCPU_PTR() to work around addressing
range limit the addressing model imposes.  Unfortunately, this breaks
if the address is specified using a variable, so for now, the two
archs aren't converted.

The following architectures are affected by this change.

* sh
* arm
* cris
* mips
* sparc(32)
* blackfin
* avr32
* parisc (broken, under investigation)
* m32r
* powerpc(32)

As this change makes the dynamic allocator the default one,
CONFIG_HAVE_DYNAMIC_PER_CPU_AREA is replaced with its invert -
CONFIG_HAVE_LEGACY_PER_CPU_AREA, which is added to yet-to-be converted
archs.  These archs implement their own setup_per_cpu_areas() and the
conversion is not trivial.

* powerpc(64)
* sparc(64)
* ia64
* alpha
* s390

Boot and batch alloc/free tests on x86_32 with debug code (x86_32
doesn't use default first chunk initialization).  Compile tested on
sparc(32), powerpc(32), arm and alpha.

Kyle McMartin reported that this change breaks parisc.  The problem is
still under investigation and he is okay with pushing this patch
forward and fixing parisc later.

[ Impact: use dynamic allocator for most archs w/o custom percpu setup ]

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Reviewed-by: Christoph Lameter <cl@linux.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Bryan Wu <cooloney@kernel.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Grant Grundler <grundler@parisc-linux.org>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
2009-06-24 15:13:35 +09:00
..
configs sgi-gru: remove SGI_GRU as a valid config option for ia64 configs with SGI_UV 2009-04-02 19:05:07 -07:00
dig x86, ia64: convert to use generic dma_map_ops struct 2009-01-06 14:06:57 +01:00
hp Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
ia32 generic compat_sys_ustat 2009-03-27 14:43:57 -04:00
include/asm dma-mapping: ia64: add CONFIG_DMA_API_DEBUG support 2009-06-18 13:03:58 -07:00
kernel Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
kvm KVM: use smp_send_reschedule in kvm_vcpu_kick 2009-06-10 11:48:53 +03:00
lib [IA64] Add Variable Page Size and IA64 Support in Intel IOMMU 2008-10-17 12:14:13 -07:00
mm Move FAULT_FLAG_xyz into handle_mm_fault() callers 2009-06-21 13:08:22 -07:00
oprofile oprofile: more whitespace fixes 2008-10-15 20:55:51 +02:00
pci ia64: Fix resource assignment for root busses 2009-06-17 14:04:42 -07:00
scripts ia64/pv_ops/pvchecker: support mov = ar.itc paravirtualization 2009-03-26 10:50:09 -07:00
sn Pull for-2.6.31 into release 2009-06-17 09:35:24 -07:00
uv [IA64] Simplify SGI uv vs. sn2 driver issues 2008-11-04 11:29:39 -08:00
xen [IA64] remove obsolete irq_desc_t typedef 2009-06-15 14:34:31 -07:00
install.sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig percpu: use dynamic percpu allocator as the default percpu allocator 2009-06-24 15:13:35 +09:00
Kconfig.debug [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
Makefile Pull vtd-iommu into release branch 2008-10-17 13:52:22 -07:00
module.lds Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00