Commit 93116ac0 authored by Christian Borntraeger's avatar Christian Borntraeger Committed by Alexander Graf
Browse files

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: default avatarChristian <Borntraeger&lt;borntraeger@de.ibm.com>
Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent 7d77793d
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -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;