cpu-exec: fix missed CPU kick during interrupt injection
commitd84be02d69a23dea249f351324d497f613994129
authorDavid Hildenbrand <david@redhat.com>
Wed, 29 Nov 2017 19:13:19 +0000 (29 20:13 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 21 Dec 2017 08:22:44 +0000 (21 09:22 +0100)
tree690877750db2178744532e9ec29692da7e4a4178
parentebd05fea9be1dfd043aaa763fb6d2cd971346a58
cpu-exec: fix missed CPU kick during interrupt injection

The conditional memory barrier not only looks strange but actually is
wrong.

On s390x, I can reproduce interrupts via cpu_interrupt() not leading to
a proper kick out of emulation every now and then. cpu_interrupt() is
especially used for inter CPU communication via SIGP (esp. external
calls and emergency interrupts).

With this patch, I was not able to reproduce. (esp. no stalls or hangs
in the guest).

My setup is s390x MTTCG with 16 VCPUs on 8 CPU host, running make -j16.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20171129191319.11483-1-david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
accel/tcg/cpu-exec.c