android_kernel_xiaomi_sm8350/arch/s390/kernel
Christian Borntraeger 0eaeafa10f [S390] s390-kvm: leave sie context on work. Removes preemption requirement
From: Martin Schwidefsky <schwidefsky@de.ibm.com>

This patch fixes a bug with cpu bound guest on kvm-s390. Sometimes it
was impossible to deliver a signal to a spinning guest. We used
preemption as a circumvention. The preemption notifiers called
vcpu_load, which checked for pending signals and triggered a host
intercept. But even with preemption, a sigkill was not delivered
immediately.

This patch changes the low level host interrupt handler to check for the
SIE  instruction, if TIF_WORK is set. In that case we change the
instruction pointer of the return PSW to rerun the vcpu_run loop. The kvm
code sees an intercept reason 0 if that happens. This patch adds accounting
for these types of intercept as well.

The advantages:
- works with and without preemption
- signals are delivered immediately
- much better host latencies without preemption

Acked-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2008-05-07 09:23:01 +02:00
..
asm-offsets.c s390: use kbuild.h instead of defining macros in asm-offsets.c 2008-04-29 08:06:30 -07:00
audit.c
audit.h
base.S
binfmt_elf32.c [S390] dynamic page tables. 2008-02-09 18:24:41 +01:00
bitmap.S
compat_audit.c
compat_exec_domain.c
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
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
crash.c
debug.c arch: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:14:49 -04:00
diag.c
dis.c
early.c [S390] System z large page support. 2008-04-30 13:38:47 +02:00
ebcdic.c
entry64.S [S390] s390-kvm: leave sie context on work. Removes preemption requirement 2008-05-07 09:23:01 +02:00
entry.h [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
entry.S [S390] s390: Optimize user and work TIF check 2008-05-07 09:23:00 +02:00
head31.S [S390] Convert machine feature detection code to C. 2008-04-30 13:38:47 +02:00
head64.S [S390] System z large page support. 2008-04-30 13:38:47 +02:00
head.S
init_task.c
ipl.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
irq.c proper __do_softirq() prototype 2008-04-29 08:06:02 -07:00
kprobes.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
machine_kexec.c
Makefile [S390] remove -traditional 2008-04-30 13:38:44 +02:00
module.c
process.c [S390] Move show_regs to traps.c. 2008-04-30 13:38:43 +02:00
ptrace.c [S390] use generic sys_ptrace 2008-04-30 13:38:48 +02:00
reipl64.S
reipl.S
relocate_kernel64.S
relocate_kernel.S
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] System z large page support. 2008-04-30 13:38:47 +02:00
signal.c [S390] Fix a lot of sparse warnings. 2008-04-17 07:47:06 +02:00
smp.c [S390] Automatically detect added cpus. 2008-04-30 13:38:44 +02:00
stacktrace.c [S390] latencytop s390 support. 2008-02-05 16:50:59 +01:00
sys_s390.c unified (weak) sys_pipe implementation 2008-05-03 13:50:33 -07: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] cpu topology: Fix possible deadlock. 2008-04-30 13:38:45 +02:00
traps.c [S390] Move show_regs to traps.c. 2008-04-30 13:38:43 +02:00
vmlinux.lds.S [S390] Fix linker script. 2008-02-05 16:50:55 +01:00
vtime.c KVM: s390: arch backend for the kvm kernel module 2008-04-27 12:00:42 +03:00