]> xenbits.xensource.com Git - qemu-upstream-4.6-testing.git/commitdiff
s390: fix cpu hotplug / cpu activity on interrupts
authorChristian Borntraeger <borntraeger@de.ibm.com>
Sun, 20 Nov 2011 23:12:03 +0000 (23:12 +0000)
committerAlexander Graf <agraf@suse.de>
Thu, 12 Jan 2012 17:41:08 +0000 (18:41 +0100)
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>
(cherry picked from commit 93116ac0cf9734e7b28886aedf03848b37d6785e)

target-s390x/kvm.c

index 40b0ab19225a87a7782f43fc05fe62fbbfe38636..b1404bfd2f07beff2466775b22cd5be0c174de24 100644 (file)
@@ -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;