linux_dsm_epyc7002/arch/s390
Martin Schwidefsky ce3dc44749 s390: add support for virtually mapped kernel stacks
With virtually mapped kernel stacks the kernel stack overflow detection
is now fault based, every stack has a guard page in the vmalloc space.
The panic_stack is renamed to nodat_stack and is used for all function
that need to run without DAT, e.g. memcpy_real or do_start_kdump.

The main effect is a reduction in the kernel image size as with vmap
stacks the old style overflow checking that adds two instructions per
function is not needed anymore. Result from bloat-o-meter:

add/remove: 20/1 grow/shrink: 13/26854 up/down: 2198/-216240 (-214042)

In regard to performance the micro-benchmark for fork has a hit of a
few microseconds, allocating 4 pages in vmalloc space is more expensive
compare to an order-2 page allocation. But with real workload I could
not find a noticeable difference.

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2018-10-09 11:20:57 +02:00
..
appldata s390/appldata: do not use stack buffers for hardware data 2018-10-09 11:20:52 +02:00
boot s390: clean up stacks setup 2018-09-20 13:20:29 +02:00
configs s390: update defconfigs 2018-04-27 06:51:31 +02:00
crypto s390/crypto: Fix return code checking in cbc_paes_crypt() 2018-09-04 10:58:17 +02:00
hypfs s390/hypfs: do not use stack buffers for hardware data 2018-10-09 11:20:53 +02:00
include s390: add support for virtually mapped kernel stacks 2018-10-09 11:20:57 +02:00
kernel s390: add support for virtually mapped kernel stacks 2018-10-09 11:20:57 +02:00
kvm KVM: s390: Properly lock mm context allow_gmap_hpage_1m setting 2018-09-04 11:40:26 +02:00
lib s390/lib: use expoline for all bcr instructions 2018-08-07 13:38:13 +02:00
mm s390: add support for virtually mapped kernel stacks 2018-10-09 11:20:57 +02:00
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2018-08-13 19:07:17 -07:00
numa s390/numa: move initial setup of node_to_cpumask_map 2018-08-01 07:48:33 +02:00
oprofile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci s390/pci: remove fmb address from debug output 2018-08-16 14:49:13 +02:00
purgatory s390: clean up stacks setup 2018-09-20 13:20:29 +02:00
scripts s390/build: add *.o.chkbss files to targets list 2018-07-02 12:32:23 +02:00
tools Minor code cleanups for PPC. 2018-08-19 10:38:36 -07:00
defconfig s390/zcrypt: multiple zcrypt device nodes support 2018-10-08 09:09:58 +02:00
Kbuild s390/kexec_file: Add purgatory 2018-04-16 09:10:22 +02:00
Kconfig s390: add support for virtually mapped kernel stacks 2018-10-09 11:20:57 +02:00
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Makefile kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00