qemu/target-s390x
Christian Borntraeger f9530c3242 s390x/kvm: Fix potential deadlock in sigp handling
If two VCPUs exit at the same time and target each other
with a sigp, both could run into a deadlock as run_on_cpu
on CPU0 will free the BQL when starting the CPU1 target routine.
CPU1 will run its sigp initiater for CPU0 before handling
the run_on_cpu requests, thus resulting in a dead lock.

As all qemu SIGPs are slow path anway we can use a big sigp
lock and allow only one SIGP for the guest at a time. We will
return condition code 2 (BUSY) on contention to the guest.

Reported-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
2016-09-28 13:24:51 +02:00
..
arch_dump.c s390: Clean up includes 2016-01-29 15:07:22 +00:00
cc_helper.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
cpu_features_def.h s390x/cpumodel: introduce CPU features 2016-09-06 17:06:49 +02:00
cpu_features.c s390x/cpumodel: introduce CPU feature group definitions 2016-09-06 17:06:49 +02:00
cpu_features.h s390x/cpumodel: introduce CPU feature group definitions 2016-09-06 17:06:49 +02:00
cpu_models.c s390x/cpumodel: implement QMP interface "query-cpu-model-baseline" 2016-09-06 17:06:51 +02:00
cpu_models.h s390x/kvm: implement CPU model support 2016-09-06 17:06:50 +02:00
cpu-qom.h s390x/cpumodel: register defined CPU models as subclasses 2016-09-06 17:06:49 +02:00
cpu.c s390x/cpumodel: expose features and feature groups as properties 2016-09-06 17:06:50 +02:00
cpu.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
fpu_helper.c softfloat: Implement run-time-configurable meaning of signaling NaN bit 2016-06-24 13:40:37 +01:00
gdbstub.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
gen-features.c s390x/kvm: let the CPU model control CMM(A) 2016-09-06 17:06:51 +02:00
helper.c s390x/cpumodel: "host" and "qemu" as CPU subclasses 2016-09-06 17:06:49 +02:00
helper.h softfloat: Implement run-time-configurable meaning of signaling NaN bit 2016-06-24 13:40:37 +01:00
insn-data.def target-s390x: wire up I/O instructions in TCG mode 2015-06-17 12:40:50 +02:00
insn-format.def target-s390: Add format based disassassmbly infrastructure 2013-01-05 12:00:27 -08:00
int_helper.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
interrupt.c s390x: reorganize CSS bits between cpu.h and other headers 2016-05-19 16:42:28 +02:00
ioinst.c s390x/ioinst: advertise fcs facility 2016-09-05 15:15:16 +02:00
kvm.c s390x/kvm: Fix potential deadlock in sigp handling 2016-09-28 13:24:51 +02:00
machine.c s390x/cpumodel: let the CPU model handle feature checks 2016-09-06 17:06:50 +02:00
Makefile.objs s390x/cpumodel: generate CPU feature lists for CPU models 2016-09-06 17:06:49 +02:00
mem_helper.c Fix confusing argument names in some common functions 2016-07-12 13:06:08 +01:00
misc_helper.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
mmu_helper.c s390x: fix debug statement in trigger_page_fault() 2016-03-01 12:15:28 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
translate.c softfloat: Implement run-time-configurable meaning of signaling NaN bit 2016-06-24 13:40:37 +01:00