linux/arch/s390
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
..
appldata [S390] appldata: remove unused binary sysctls. 2007-11-20 11:13:45 +01:00
boot [PATCH] use ${CROSS_COMPILE}installkernel in arch/*/boot/install.sh 2005-06-23 09:45:07 -07:00
crypto [CRYPTO] sha384: Hardware acceleration for s390 2008-04-21 10:19:21 +08:00
hypfs Kobject: convert arch/* from kobject_unregister() to kobject_put() 2008-01-24 20:40:39 -08:00
kernel [S390] s390-kvm: leave sie context on work. Removes preemption requirement 2008-05-07 09:23:01 +02:00
kvm [S390] s390-kvm: leave sie context on work. Removes preemption requirement 2008-05-07 09:23:01 +02:00
lib [S390] uaccess_mvcos: #ifdef config dependent code. 2008-04-30 13:38:46 +02:00
math-emu [S390] remove -traditional 2008-04-30 13:38:44 +02:00
mm [S390] Convert to SPARSEMEM & SPARSEMEM_VMEMMAP 2008-04-30 13:38:48 +02:00
oprofile Combine instrumentation menus in kernel/Kconfig.instrumentation 2007-10-19 11:53:54 -07:00
defconfig [S390] Update default configuration. 2008-04-30 13:38:49 +02:00
Kconfig [S390] Convert to SPARSEMEM & SPARSEMEM_VMEMMAP 2008-04-30 13:38:48 +02:00
Kconfig.debug [S390] DEBUG_PAGEALLOC support for s390. 2008-02-05 16:50:54 +01:00
Makefile KVM: s390: arch backend for the kvm kernel module 2008-04-27 12:00:42 +03:00