linux/arch/s390/kernel
Martin Schwidefsky 23fefe119c s390/kvm: avoid global config of vm.alloc_pgste=1
The system control vm.alloc_pgste is used to control the size of the
page tables, either 2K or 4K. The idea is that a KVM host sets the
vm.alloc_pgste control to 1 which causes *all* new processes to run
with 4K page tables. For a non-kvm system the control should stay off
to save on memory used for page tables.

Trouble is that distributions choose to set the control globally to
be able to run KVM guests. This wastes memory on non-KVM systems.

Introduce the PT_S390_PGSTE ELF segment type to "mark" the qemu
executable with it. All executables with this (empty) segment in
its ELF phdr array will be started with 4K page tables. Any executable
without PT_S390_PGSTE will run with the default 2K page tables.

This removes the need to set vm.alloc_pgste=1 for a KVM host and
minimizes the waste of memory for page tables.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2017-06-13 13:03:41 +02:00
..
vdso32 s390/time: steer clocksource on STP sync events 2016-10-28 10:09:02 +02:00
vdso64 s390/time: steer clocksource on STP sync events 2016-10-28 10:09:02 +02:00
.gitignore
als.c s390/sclp: don't add new lines to each printed string 2017-02-08 14:13:20 +01:00
asm-offsets.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
audit.c
audit.h
base.S s390/kdump: fix nosmt kernel parameter 2015-06-25 09:39:26 +02:00
cache.c s390/cpuinfo: show dynamic and static cpu mhz 2016-06-13 15:58:17 +02:00
compat_audit.c
compat_linux.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
compat_linux.h s390: add support for vector extension 2014-10-09 09:14:13 +02:00
compat_ptrace.h
compat_signal.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
compat_wrapper.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
cpcmd.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
crash_dump.c s390/kdump: Add final note 2017-03-28 16:54:31 +02:00
debug.c s390: convert debug_info.ref_count from atomic_t to refcount_t 2017-05-11 16:35:32 +02:00
diag.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
dis.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
dumpstack.c s390: rename struct psw_bits members 2017-06-12 16:26:02 +02:00
early_printk.c s390/sclp: make early sclp code readable 2017-02-08 14:13:19 +01:00
early.c s390/spinlock: remove compare and delay instruction 2017-04-12 08:43:33 +02:00
ebcdic.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
entry.h s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
entry.S s390/kvm: avoid global config of vm.alloc_pgste=1 2017-06-13 13:03:41 +02:00
fpu.c s390/fpu: improve kernel_fpu_[begin|end] 2016-08-29 11:05:01 +02:00
ftrace.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-05-16 09:24:44 -07:00
guarded_storage.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
head64.S s390/cpumf: simplify detection of guest samples 2017-04-05 10:11:38 +02:00
head_kdump.S s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
head.S s390/facilities: get rid of __ASSEMBLY__ in facility header file 2017-03-22 08:29:18 +01:00
idle.c sched/headers: Prepare to move cputime functionality from <linux/sched.h> into <linux/sched/cputime.h> 2017-03-02 08:42:39 +01:00
ipl.c s390/ipl: revert Load Normal semantics for LPAR CCW-type re-IPL 2017-06-12 16:26:01 +02:00
irq.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
jump_label.c s390: kernel: Audit and remove any unnecessary uses of module.h 2017-02-17 07:40:31 +01:00
kdebugfs.c s390/debugfs: introduce top-level 's390' directory 2017-03-22 08:29:15 +01:00
kprobes.c s390: use set_memory.h header 2017-05-08 17:15:13 -07:00
lgr.c s390: kernel: make lgr explicitly non-modular 2016-10-31 17:55:42 +01:00
machine_kexec.c s390: use set_memory.h header 2017-05-08 17:15:13 -07:00
Makefile s390/debugfs: introduce top-level 's390' directory 2017-03-22 08:29:15 +01:00
mcount.S s390: move exports to definitions 2016-08-07 23:47:20 -04:00
module.c s390: add no-execute support 2017-02-08 14:13:25 +01:00
nmi.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
os_info.c s390: proper type casts for csum_partial invocations 2017-01-16 07:27:53 +01:00
perf_cpum_cf_events.c s390/cpum_cf: correct variable naming (cleanup) 2017-03-31 07:53:33 +02:00
perf_cpum_cf.c s390/cpum_cf: make hw_perf_event_update() a void function 2017-03-31 07:53:35 +02:00
perf_cpum_sf.c s390: rename struct psw_bits members 2017-06-12 16:26:02 +02:00
perf_event.c s390/perf: fix null string in perf list pmu command 2017-06-12 16:26:00 +02:00
pgm_check.S s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
process.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
processor.c s390/cpuinfo: show facilities as reported by stfle 2017-03-22 08:29:02 +01:00
ptrace.c s390/ptrace: guarded storage regset for the current task 2017-06-12 16:25:59 +02:00
reipl.S s390/dump: rework CPU register dump code 2015-11-27 09:24:14 +01:00
relocate_kernel.S s390: remove "64" suffix from a couple of files 2015-03-25 11:49:34 +01:00
runtime_instr.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
setup.c s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
signal.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
smp.c s390/smp: fix false positive kmemleak of mcesa data structure 2017-06-12 16:25:58 +02:00
stacktrace.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
suspend.c PCI: Include <linux/pci.h>, not <asm/pci.h> 2015-06-08 07:55:03 -05:00
swsusp.S s390/sclp: don't add new lines to each printed string 2017-02-08 14:13:20 +01:00
sys_s390.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
syscalls.S s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
sysinfo.c s390/sysinfo: provide remaining stsi information via debugfs 2017-03-22 08:29:17 +01:00
time.c s390/time: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:20 -07:00
topology.c s390/sysinfo,topology: provide raw stsi 15,1,x data via debugfs 2017-03-22 08:29:15 +01:00
trace.c s390/diag: avoid lockdep recursion 2016-02-11 13:05:56 +01:00
traps.c s390: add missing header includes for type checking 2017-06-12 16:25:55 +02:00
uprobes.c s390: rename struct psw_bits members 2017-06-12 16:26:02 +02:00
vdso.c s390/vdso: use _install_special_mapping to establish vdso 2017-06-12 16:25:57 +02:00
vmlinux.lds.S s390: move _text symbol to address higher than zero 2017-05-09 10:44:38 +02:00
vtime.c s390/cputime: simplify account_system_index_scaled 2017-06-12 16:25:57 +02:00