qemu-e2k/target/s390x
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
..
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c s390x/tcg: use s390_program_interrupt() in SACF 2017-12-14 17:56:54 +01:00
cpu_features_def.h s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
cpu_features.c s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_models.c s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c s390x/tcg: simplify machine check handling 2018-02-09 09:37:13 +01:00
cpu.h s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c s390x/diag: pass the retaddr into handle_diag_308() 2017-12-14 17:56:54 +01:00
excp_helper.c s390x/tcg: tolerate wrong wakeups due to floating interrupts 2018-02-09 09:37:13 +01:00
fpu_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390x/kvm: provide stfle.81 2018-01-22 11:22:43 +01:00
helper.c target/s390x: nuke DPRINTF in helper.c 2017-12-14 17:56:54 +01:00
helper.h s390x/tcg: fixup TEST PROTECTION 2018-01-22 11:04:52 +01:00
insn-data.def s390x/tcg: implement extract-CPU-time facility 2017-12-14 17:56:54 +01:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
internal.h accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
interrupt.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
ioinst.c s390x: handle exceptions during s390_cpu_virt_mem_rw() correctly (TCG) 2017-12-14 17:56:54 +01:00
kvm_s390x.h s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm-stub.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
machine.c s390x/kvm: Handle bpb feature 2018-01-22 11:22:30 +01:00
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
mem_helper.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
misc_helper.c s390x/tcg: implement extract-CPU-time facility 2017-12-14 17:56:54 +01:00
mmu_helper.c s390x/tcg: don't exit the cpu loop in s390_cpu_virt_mem_rw() 2017-12-14 17:56:54 +01:00
sigp.c target/s390x: special handling when starting a CPU with WAIT PSW 2017-10-20 13:32:10 +02:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: implement TEST PROTECTION 2018-01-22 11:04:52 +01:00