linux_old1/arch/powerpc
Nishanth Aravamudan 3af229f207 powerpc/numa: Reset node_possible_map to only node_online_map
Raghu noticed an issue with excessive memory allocation on power with a
simple cgroup test, specifically, in mem_cgroup_css_alloc ->
for_each_node -> alloc_mem_cgroup_per_zone_info(), which ends up blowing
up the kmalloc-2048 slab (to the order of 200MB for 400 cgroup
directories).

The underlying issue is that NODES_SHIFT on power is 8 (256 NUMA nodes
possible), which defines node_possible_map, which in turn defines the
value of nr_node_ids in setup_nr_node_ids and the iteration of
for_each_node.

In practice, we never see a system with 256 NUMA nodes, and in fact, we
do not support node hotplug on power in the first place, so the nodes
that are online when we come up are the nodes that will be present for
the lifetime of this kernel. So let's, at least, drop the NUMA possible
map down to the online map at runtime. This is similar to what x86 does
in its initialization routines.

mem_cgroup_css_alloc should also be fixed to only iterate over
memory-populated nodes and handle hotplug, but that is a separate
change.

Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Anton Blanchard <anton@samba.org>
Cc: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-03-23 13:25:53 +11:00
..
boot powerpc/boot: don't clobber r6 and r7 in epapr boot 2015-03-16 18:58:35 +11:00
configs The clock framework changes for 3.20 contain the usual driver additions, 2015-02-21 12:30:30 -08:00
crypto crypto: add missing crypto module aliases 2015-01-13 22:29:11 +11:00
include powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
kernel powerpc/kernel: Rename copy_thread() 'arg' argument to 'kthread_arg' 2015-03-20 12:41:15 +11:00
kvm powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument. 2015-03-17 07:52:48 +11:00
lib powerpc: Delete unnecessary checks before kfree() 2015-03-16 18:50:14 +11:00
math-emu powerpc: Correct emulated mtfsf instruction 2014-04-07 10:33:11 +10:00
mm powerpc/numa: Reset node_possible_map to only node_online_map 2015-03-23 13:25:53 +11:00
net module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
oprofile powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
perf Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2015-02-04 12:03:21 +11:00
platforms powerpc/powernv: Move opal-api.h closer to the Skiboot version 2015-03-16 18:50:16 +11:00
sysdev powerpc/mpic: remove unused functions 2015-03-16 18:50:18 +11:00
xmon powerpc updates for 3.20 2015-02-11 18:15:38 -08:00
Kconfig powerpc: kill PPC_OF 2015-03-17 20:04:32 +11:00
Kconfig.debug powerpc: kill PPC_OF 2015-03-17 20:04:32 +11:00
Makefile kbuild: do not add $(call ...) to invoke cc-version or cc-fullversion 2015-01-09 17:25:44 +01:00
relocs_check.pl