s390/numa: add emulation support
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Thu, 6 Mar 2014 17:47:21 +0000 (18:47 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 4 Aug 2015 12:06:53 +0000 (14:06 +0200)
commitc29a7baf091fc6b2c9e40561030f8c62e6145a19
treedfddc7a273858c32c9946857bfff2dc7779e64a9
parente8054b654bf5d4f549f4f24b708acce6d2718b1b
s390/numa: add emulation support

NUMA emulation (aka fake NUMA) distributes the available memory to nodes
without using real topology information about the physical memory of the
machine.

Splitting the system memory into nodes replicates the memory management
structures for each node. Particularly each node has its own "mm locks"
and its own "kswapd" task.

For large systems, under certain conditions, this results in improved
system performance and/or latency based on reduced pressure on the mm
locks and the kswapd tasks.

NUMA emulation distributes CPUs to nodes while respecting the original
machine topology information. This is done by trying to avoid to separate
CPUs which reside on the same book or even on the same MC. Because the
current Linux scheduler code requires a stable cpu to node mapping, cores
are pinned to nodes when the first CPU thread is set online.

This patch is based on the initial implementation from Philipp Hachtmann.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig
arch/s390/include/asm/numa.h
arch/s390/numa/Makefile
arch/s390/numa/mode_emu.c [new file with mode: 0644]
arch/s390/numa/numa.c
arch/s390/numa/numa_mode.h
drivers/s390/char/sclp_cmd.c