1
linux/arch/ia64
Tejun Heo 36886478f5 ia64: allocate percpu area for cpu0 like percpu areas for other cpus
cpu0 used special percpu area reserved by the linker, __cpu0_per_cpu,
which is set up early in boot by head.S.  However, this doesn't
guarantee that the area will be on the same node as cpu0 and the
percpu area for cpu0 ends up very far away from percpu areas for other
cpus which cause problems for congruent percpu allocator.

This patch makes percpu area initialization allocate percpu area for
cpu0 like any other cpus and copy it from __cpu0_per_cpu which now
resides in the __init area.  This means that for cpu0, percpu area is
first setup at __cpu0_per_cpu early by head.S and then moved to an
area in the linear mapping during memory initialization and it's not
allowed to take a pointer to percpu variables between head.S and
memory initialization.

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>
2009-10-02 13:28:56 +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 Merge branch 'acpica' into release 2009-09-19 01:45:22 -04:00
ia32 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
include/asm ia64: don't alias VMALLOC_END to vmalloc_end 2009-10-02 13:28:55 +09:00
kernel ia64: allocate percpu area for cpu0 like percpu areas for other cpus 2009-10-02 13:28:56 +09:00
kvm KVM: Reduce runnability interface with arch support code 2009-09-10 08:33:13 +03:00
lib [IA64] fix csum_ipv6_magic() 2009-09-02 09:14:48 -07:00
mm ia64: allocate percpu area for cpu0 like percpu areas for other cpus 2009-10-02 13:28:56 +09:00
oprofile [IA64] implement ticket locks for Itanium 2009-09-25 08:42:16 -07:00
pci ia64/PCI: adjust section annotation for pcibios_setup() 2009-06-30 16:26:53 -07:00
scripts ia64/pv_ops/pvchecker: support mov = ar.itc paravirtualization 2009-03-26 10:50:09 -07:00
sn Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2009-09-18 09:33:07 -07:00
uv [IA64] Simplify SGI uv vs. sn2 driver issues 2008-11-04 11:29:39 -08:00
xen rcu: Simplify rcu_pending()/rcu_check_callbacks() API 2009-08-23 10:32:39 +02:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
Kconfig [IA64] implement ticket locks for Itanium 2009-09-25 08:42:16 -07:00
Kconfig.debug
Makefile arch/ia64/Makefile: Remove -mtune=merced in IA64 kernel build 2009-08-11 14:52:11 -07:00
module.lds