kernel_optimize_test/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
..
irq cpumask: Cleanup more uses of CPU_MASK and NODE_MASK 2008-04-19 19:44:58 +02:00
power
time softlockup: fix NOHZ wakeup 2008-04-25 00:25:08 +02:00
.gitignore
acct.c
audit_tree.c
audit.c Audit: internally use the new LSM audit hooks 2008-04-19 09:52:37 +10:00
audit.h SELinux: use new audit hooks, remove redundant exports 2008-04-19 09:53:46 +10:00
auditfilter.c Audit: Final renamings and cleanup 2008-04-19 09:59:43 +10:00
auditsc.c Audit: Final renamings and cleanup 2008-04-19 09:59:43 +10:00
backtracetest.c
capability.c
cgroup_debug.c
cgroup.c
compat.c generic: reduce stack pressure in sched_affinity 2008-04-19 19:44:59 +02:00
configs.c
cpu.c generic: use new set_cpus_allowed_ptr function 2008-04-19 19:44:58 +02:00
cpuset.c sched, cpuset: customize sched domains, core 2008-04-19 19:45:00 +02:00
delayacct.c
dma.c
exec_domain.c
exit.c [PATCH] sanitize unshare_files/reset_files_struct 2008-04-25 09:23:59 -04:00
extable.c
fork.c s390: KVM preparation: provide hook to enable pgstes in user pagetable 2008-04-27 12:00:40 +03:00
futex_compat.c
futex.c
hrtimer.c hrtimer: optimize the softirq time optimization 2008-04-21 07:59:51 +02:00
itimer.c
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c kernel: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:17:04 -04:00
kfifo.c
kgdb.c
kmod.c generic: use new set_cpus_allowed_ptr function 2008-04-19 19:44:58 +02:00
kprobes.c
ksysfs.c
kthread.c Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-04-21 15:41:27 -07:00
latencytop.c latencytop: optimize LT_BACKTRACEDEPTH loops a bit 2008-04-19 19:44:57 +02:00
lockdep_internals.h
lockdep_proc.c
lockdep.c
Makefile
marker.c
module.c kernel: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:17:04 -04:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
notifier.c
ns_cgroup.c
nsproxy.c
panic.c
params.c
pid_namespace.c
pid.c
pm_qos_params.c
posix-cpu-timers.c
posix-timers.c kernel: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:17:04 -04:00
printk.c
profile.c kernel: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:17:04 -04:00
ptrace.c ptrace: compat_ptrace_request siginfo 2008-04-21 15:53:41 -07:00
rcuclassic.c
rcupdate.c
rcupreempt_trace.c
rcupreempt.c generic: reduce stack pressure in sched_affinity 2008-04-19 19:44:59 +02:00
rcutorture.c generic: use new set_cpus_allowed_ptr function 2008-04-19 19:44:58 +02:00
relay.c
res_counter.c
resource.c PCI: clean up resource alignment management 2008-04-20 21:47:08 -07:00
rtmutex_common.h
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rwsem.c
sched_debug.c sched: build fix 2008-04-19 19:45:01 +02:00
sched_fair.c sched: debug: show a weight tree 2008-04-19 19:45:00 +02:00
sched_features.h sched: /debug/sched_features 2008-04-19 19:45:00 +02:00
sched_idletask.c
sched_rt.c sched: rt-group: optimize dequeue_rt_stack 2008-04-19 19:45:00 +02:00
sched_stats.h cpumask: use new cpus_scnprintf function 2008-04-19 19:44:59 +02:00
sched.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2008-04-25 12:50:00 -07:00
seccomp.c
semaphore.c
signal.c trivial: small cleanups 2008-04-21 22:15:06 +00:00
softirq.c tasklets: execute tasklets in the same order they were queued 2008-04-19 19:44:58 +02:00
softlockup.c
spinlock.c
srcu.c
stacktrace.c
stop_machine.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial 2008-04-21 16:36:46 -07:00
sys_ni.c
sys.c generic, x86: add prctl commands PR_GET_TSC and PR_SET_TSC 2008-04-19 19:19:55 +02:00
sysctl_check.c
sysctl.c sched: rt-group: synchonised bandwidth period 2008-04-19 19:44:57 +02:00
taskstats.c
test_kprobes.c
time.c time: Export set_normalized_timespec. 2008-04-21 19:45:12 -07:00
timeconst.pl
timer.c
tsacct.c
uid16.c
user_namespace.c
user.c sched: fix the task_group hierarchy for UID grouping 2008-04-19 19:45:00 +02:00
utsname_sysctl.c
utsname.c
wait.c
workqueue.c