linux/arch/s390/kernel
Carsten Otte 402b08622d s390: KVM preparation: provide hook to enable pgstes in user pagetable
The SIE instruction on s390 uses the 2nd half of the page table page to
virtualize the storage keys of a guest. This patch offers the s390_enable_sie
function, which reorganizes the page tables of a single-threaded process to
reserve space in the page table:
s390_enable_sie makes sure that the process is single threaded and then uses
dup_mm to create a new mm with reorganized page tables. The old mm is freed
and the process has now a page status extended field after every page table.

Code that wants to exploit pgstes should SELECT CONFIG_PGSTE.

This patch has a small common code hit, namely making dup_mm non-static.

Edit (Carsten): I've modified Martin's patch, following Jeremy Fitzhardinge's
review feedback. Now we do have the prototype for dup_mm in
include/linux/sched.h. Following Martin's suggestion, s390_enable_sie() does now
call task_lock() to prevent race against ptrace modification of mm_users.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-04-27 12:00:40 +03:00
..
Makefile Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-04-18 08:25:29 -07:00
asm-offsets.c rename thread_info to stack 2007-05-09 12:30:56 -07:00
audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
audit.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
base.S [S390] Convert memory detection into C code. 2007-02-05 21:18:37 +01:00
binfmt_elf32.c [S390] dynamic page tables. 2008-02-09 18:24:41 +01:00
bitmap.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat_audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
compat_exec_domain.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
compat_linux.c arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
compat_linux.h [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
compat_ptrace.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat_signal.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
compat_wrapper.S [S390] Wire up new timerfd syscalls. 2008-02-09 18:24:37 +01:00
cpcmd.c [S390] cpcmd: fix inline assembly usage. 2007-10-12 16:13:09 +02:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c [S390] disassembler: Remove redundant variable assignment 2007-10-12 16:13:06 +02:00
early.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry.S [S390] Fix couple of section mismatches. 2008-02-05 16:50:56 +01:00
entry.h [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
entry64.S [S390] kernel: show last breaking-event-address on oops 2008-04-17 07:47:07 +02:00
head.S [S390] Get rid of new section mismatch warnings. 2007-07-27 12:29:18 +02:00
head31.S [S390] Fixed handling of access register mode faults. 2007-03-05 23:35:54 +01:00
head64.S [S390] Fix tlb flushing with idte. 2008-01-26 14:11:10 +01:00
init_task.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
ipl.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
irq.c [SOFTIRQ]: Remove do_softirq() symbol export. 2007-10-10 16:48:36 -07:00
kprobes.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
machine_kexec.c [S390] nss: disable kexec. 2007-03-05 23:35:45 +01:00
module.c [S390] Use generic bug. 2007-04-27 16:01:42 +02:00
process.c [S390] kernel: show last breaking-event-address on oops 2008-04-17 07:47:07 +02:00
ptrace.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
reipl.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
reipl64.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
s390_ksyms.c Generic semaphore implementation 2008-04-17 10:42:34 -04:00
setup.c s390: KVM preparation: provide hook to enable pgstes in user pagetable 2008-04-27 12:00:40 +03:00
signal.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
smp.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
stacktrace.c [S390] latencytop s390 support. 2008-02-05 16:50:59 +01:00
sys_s390.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
syscalls.S [S390] Wire up new timerfd syscalls. 2008-02-09 18:24:37 +01:00
time.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
topology.c [S390] Vertical cpu management. 2008-04-17 07:47:01 +02:00
traps.c [S390] kernel: show last breaking-event-address on oops 2008-04-17 07:47:07 +02:00
vmlinux.lds.S [S390] Fix linker script. 2008-02-05 16:50:55 +01:00
vtime.c sched: restore deterministic CPU accounting on powerpc 2007-11-09 22:39:38 +01:00