qemu-e2k/target/s390x
David Hildenbrand a30fb811cb s390x: refactor reset/reipl handling
Calling pause_all_vcpus()/resume_all_vcpus() from a VCPU thread might
not be the best idea. As pause_all_vcpus() temporarily drops the qemu
mutex, two parallel calls to pause_all_vcpus() can be active at a time,
resulting in a deadlock. (either by two VCPUs or by the main thread and a
VCPU)

Let's handle it via the main loop instead, as suggested by Paolo. If we
would have two parallel reset requests by two different VCPUs at the
same time, the last one would win.

We use the existing ipl device to handle it. The nice side effect is
that we can get rid of reipl_requested.

This change implies that all reset handling now goes via the common
path, so "no-reboot" handling is now active for all kinds of reboots.

Let's execute any CPU initialization code on the target CPU using
run_on_cpu.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180424101859.10239-1-david@redhat.com>
Acked-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-05-14 17:10:02 +02:00
..
arch_dump.c
cc_helper.c s390x/tcg: use s390_program_interrupt() in SACF 2017-12-14 17:56:54 +01:00
cpu_features_def.h s390x/cpumodel: model PTFF subfunctions for Multiple-epoch facility 2018-02-09 09:37:13 +01:00
cpu_features.c s390x/cpumodel: document S390FeatDef.bit not applicable 2018-02-26 12:55:26 +01:00
cpu_features.h s390x/cpumodel: fix feature groups and breakage of MSA8 2018-03-23 09:05:42 +00:00
cpu_models.c qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF 2018-05-04 08:27:53 +02: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 qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
cpu.h s390x: refactor reset/reipl handling 2018-05-14 17:10:02 +02:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c s390x: refactor reset/reipl handling 2018-05-14 17:10:02 +02:00
excp_helper.c s390x/tcg: fix loading 31bit PSWs with the highest bit set 2018-03-01 13:23:09 +01:00
fpu_helper.c target/*/cpu.h: remove softfloat.h 2018-02-21 10:20:24 +00:00
gdbstub.c
gen-features.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
helper.c s390x: load_psw() should only exchange the PSW for KVM 2018-04-09 13:59:06 +02:00
helper.h s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +01:00
insn-data.def s390x/tcg: add various alignment checks 2018-02-26 12:55:26 +01:00
insn-format.def
int_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
internal.h s390x: refactor reset/reipl handling 2018-05-14 17:10:02 +02:00
interrupt.c s390x/flic: cache the common flic class in a central function 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: remove s390_get_memslot_count 2018-02-26 12:55:26 +01:00
kvm-stub.c s390x: remove s390_get_memslot_count 2018-02-26 12:55:26 +01:00
kvm.c s390x: refactor reset/reipl handling 2018-05-14 17:10:02 +02: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 target/s390x: Remove leading underscores from #defines 2018-03-08 15:49:23 +01:00
misc_helper.c s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +01:00
mmu_helper.c s390x/mmu: don't overwrite pending exception in mmu translate 2018-04-09 13:58:01 +02:00
sigp.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c target/s390x: convert to TranslatorOps 2018-05-09 10:12:21 -07:00