[IA64] __per_cpu_idtrs[] is a memory hog
authorTony Luck <tony.luck@intel.com>
Fri, 8 Jan 2010 00:10:57 +0000 (16:10 -0800)
committerTony Luck <tony.luck@intel.com>
Fri, 8 Jan 2010 00:10:57 +0000 (16:10 -0800)
commit6c57a332901f851bd092aba7a2b4d8ef4e643829
tree049e913b0c7b4c678ba699ac02f62e16db8cb515
parent410dc0aac63d1500faeabcbaecce4f4266380ed1
[IA64] __per_cpu_idtrs[] is a memory hog

__per_cpu_idtrs is statically allocated ... on CONFIG_NR_CPUS=4096
systems it hogs 16MB of memory. This is way too much for a quite
probably unused facility (only KVM uses dynamic TR registers).

Change to an array of pointers, and allocate entries as needed on
a per cpu basis.  Change the name too as the __per_cpu_ prefix is
confusing (this isn't a classic <linux/percpu.h> type object).

Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/include/asm/tlb.h
arch/ia64/kernel/mca.c
arch/ia64/mm/tlb.c