diff options
author | Anthony Liguori <anthony@codemonkey.ws> | 2013-08-30 12:25:56 -0500 |
---|---|---|
committer | Anthony Liguori <anthony@codemonkey.ws> | 2013-08-30 12:25:56 -0500 |
commit | b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b (patch) | |
tree | 3134edaa7e64cf853b2ab83e41c82a8f18dc5eca /hw | |
parent | b5d54bd42158b90b239bb6ce9c13072eb3a53fd2 (diff) | |
parent | 7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b (diff) | |
download | qemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.zip qemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.tar.gz qemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.tar.bz2 |
Merge remote-tracking branch 'borntraeger/tags/kdump' into staging
This is a set of patches dealing with kdump support for s390x/kvm.
kdump on s390x uses subcode 1 of diagnose 0x308 to put the hardware
in a defined state. This is different from a full reset, since it
does not touch all CPU registers.
These patches define the cpu resets, the subsystem reset a load
function and also wires up the "nmi" command to issue a RESTART
interrupt as defined in the z/Architecture principles of operation.
This allows recent guest kernels with properly setup userspace
to trigger kdump:
- via guest crash
- via nmi from the host
# gpg: Signature made Fri 30 Aug 2013 07:19:18 AM CDT using RSA key ID B5A61C7C
# gpg: Can't check signature: public key not found
# By Christian Borntraeger (5) and Eugene (jno) Dvurechenski (2)
# Via Christian Borntraeger
* borntraeger/tags/kdump:
s390: wire up nmi command to raise a RESTART interrupt on S390
s390: Implement load normal reset
s390/cpu: split CPU reset into architectured functions
s390: provide a cpu load normal function
s390: provide I/O subsystem reset
s390/kvm: basic implementation of diagnose 308 subcode 6
s390x/kvm: Fix switch/case indentation for handle_diag
Message-id: 1377810649-47484-1-git-send-email-borntraeger@de.ibm.com
Diffstat (limited to 'hw')
-rw-r--r-- | hw/s390x/s390-virtio-ccw.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index aebbbf1..8fd46a9 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -17,6 +17,21 @@ #include "css.h" #include "virtio-ccw.h" +void io_subsystem_reset(void) +{ + DeviceState *css, *sclp; + + css = DEVICE(object_resolve_path_type("", "virtual-css-bridge", NULL)); + if (css) { + qdev_reset_all(css); + } + sclp = DEVICE(object_resolve_path_type("", + "s390-sclp-event-facility", NULL)); + if (sclp) { + qdev_reset_all(sclp); + } +} + static int virtio_ccw_hcall_notify(const uint64_t *args) { uint64_t subch_id = args[0]; |