diff options
author | Christian Borntraeger <borntraeger@de.ibm.com> | 2011-11-20 23:12:03 +0000 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2012-01-04 02:48:14 +0100 |
commit | 93116ac0cf9734e7b28886aedf03848b37d6785e (patch) | |
tree | f142c2a7018762c1537176d7d6b48fb087978a9e /target-s390x/kvm.c | |
parent | 7d77793d6bf5ecb784040aef946ff7b4d52f2d2a (diff) | |
download | qemu-93116ac0cf9734e7b28886aedf03848b37d6785e.zip qemu-93116ac0cf9734e7b28886aedf03848b37d6785e.tar.gz qemu-93116ac0cf9734e7b28886aedf03848b37d6785e.tar.bz2 |
s390: fix cpu hotplug / cpu activity on interrupts
The add_del/running_cpu code and env->halted are tracking stopped cpus.
Sleeping cpus (idle and enabled for interrupts) are waiting inside the
kernel.
No interrupt besides the restart can move a cpu from stopped to
operational. This is already handled over there. So lets just remove
the bogus wakup from the common interrupt delivery, otherwise any
interrupt will wake up a cpu, even if this cpu is stopped (Thus leading
to strange hangs on sigp restart)
This fixes
echo 0 > /sys/devices/system/cpu/cpu0/online
echo 1 > /sys/devices/system/cpu/cpu0/online
in the guest
Signed-off-by: Christian Borntraeger<borntraeger@de.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x/kvm.c')
-rw-r--r-- | target-s390x/kvm.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index 40b0ab1..b1404bf 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -185,9 +185,6 @@ void kvm_s390_interrupt_internal(CPUState *env, int type, uint32_t parm, return; } - s390_add_running_cpu(env); - qemu_cpu_kick(env); - kvmint.type = type; kvmint.parm = parm; kvmint.parm64 = parm64; |