qemu-e2k/target/s390x
Christian Borntraeger 4ada99ade2 s390x/cpu: expose the guest crash information
This patch is the s390 implementation of guest crash information,
similar to commit d187e08dc4 ("i386/cpu: add crash-information QOM
property") and the related commits. We will detect several crash
reasons, with the "disabled wait" being the most important one, since
this is used by all s390 guests as a "panic like" notification.

Demonstrate these ways with examples as follows.

  1. crash-information QOM property;

  Run qemu with -qmp unix:qmp-sock,server, then use utility "qmp-shell"
  to execute "qom-get" command, and might get the result like,

  (QEMU) (QEMU) qom-get path=/machine/unattached/device[0] \
      property=crash-information
  {"return": {"core": 0, "reason": "disabled-wait", "psw-mask": 562956395872256, \
      "type": "s390", "psw-addr": 1102832}}

  2. GUEST_PANICKED event reporting;

  Run qemu with a socket option, and telnet or nc to that,
  -chardev socket,id=qmp,port=4444,host=localhost,server \
  -mon chardev=qmp,mode=control,pretty=on \
  Negotiating the mode by { "execute": "qmp_capabilities" }, and the crash
  information will be reported on a guest crash event like,

  {
    "timestamp": {
        "seconds": 1518004739,
        "microseconds": 552563
    },
    "event": "GUEST_PANICKED",
    "data": {
        "action": "pause",
        "info": {
            "core": 0,
            "psw-addr": 1102832,
            "reason": "disabled-wait",
            "psw-mask": 562956395872256,
            "type": "s390"
        }
    }
  }

  3. log;

  Run qemu with the parameters: -D <logfile> -d guest_errors, to
  specify the logfile and log item. The results might be,

  Guest crashed on cpu 0: disabled-wait
  PSW: 0x0002000180000000 0x000000000010d3f0

Co-authored-by: Jing Liu <liujbjl@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Message-Id: <20180209122543.25755-1-borntraeger@de.ibm.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[CH: tweaked qapi comment]
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-02-26 12:55:26 +01:00
..
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02: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-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c s390x/cpu: expose the guest crash information 2018-02-26 12:55:26 +01:00
cpu.h s390x/cpu: expose the guest crash information 2018-02-26 12:55:26 +01:00
cpu_features.c s390x/cpumodel: model PTFF subfunctions for Multiple-epoch facility 2018-02-09 09:37:13 +01:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features_def.h s390x/cpumodel: model PTFF subfunctions for Multiple-epoch facility 2018-02-09 09:37:13 +01:00
cpu_models.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +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 Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
fpu_helper.c target/*/cpu.h: remove softfloat.h 2018-02-21 10:20:24 +00:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c Miscellaneous patches for 2018-02-07 2018-02-09 14:39:09 +00:00
helper.c s390x/cpu: expose the guest crash information 2018-02-26 12:55:26 +01:00
helper.h s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +01:00
insn-data.def s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +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/flic: optimize CPU wakeup for TCG 2018-02-09 09:37:13 +01: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-stub.c s390x/flic: factor out injection of floating interrupts 2018-02-09 09:37:13 +01:00
kvm.c s390x/cpu: expose the guest crash information 2018-02-26 12:55:26 +01:00
kvm_s390x.h 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
mem_helper.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
misc_helper.c s390x/tcg: wire up pci instructions 2018-02-09 09:37:13 +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: wire up pci instructions 2018-02-09 09:37:13 +01:00