qemu-e2k/target
David Hildenbrand 6ca62eb598 s390x/tcg: tolerate wrong wakeups due to floating interrupts
This is a preparation for floating interrupt support and only applies to
MTTCG, single threaded TCG works just fine. If a floating interrupt wakes
up a VCPU and the CPU thinks it can run (clearing cs->halted), at
the point where the interrupt would be delivered, already another VCPU
might have picked up the interrupt, resulting in a wakeup without an
interrupt (executing wrong code).

It is wrong to let the VCPU continue to execute (the WAIT PSW). Instead,
we have to put the VCPU back to sleep.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180129125623.21729-8-david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-02-09 09:37:13 +01:00
..
alpha qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
arm arm: postpone device listener unregister 2018-02-07 14:09:24 +01:00
cris qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
hppa qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
i386 Add the WHPX acceleration enlightenments 2018-02-07 14:09:26 +01:00
lm32 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
m68k qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
microblaze qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
mips qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
moxie qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
nios2 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
openrisc qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
ppc * socket option parsing fix (Daniel) 2018-02-07 20:40:36 +00:00
s390x s390x/tcg: tolerate wrong wakeups due to floating interrupts 2018-02-09 09:37:13 +01:00
sh4 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
sparc qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
tilegx qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
tricore qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
unicore32 qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00
xtensa qdev: use device_class_set_parent_realize/unrealize/reset() 2018-02-05 13:54:38 +01:00