[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] [RFC] Wire up disabled wait a panicked event on
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH] [RFC] Wire up disabled wait a panicked event on s390 |
Date: |
Fri, 5 Apr 2013 09:15:59 -0400 |
On Fri, 05 Apr 2013 10:42:38 +0200
Christian Borntraeger <address@hidden> wrote:
> On s390 the disabled wait state indicates a state of attention.
> For example Linux uses that state after a panic. Lets
> put the system into panicked state.
>
> An alternative implementation would be to state
> disabled-wait <address> instead of pause in the action field.
> (e.g. z/OS, z/VM and other classic OSes use the address of the
> disabled wait to indicate an error code).
>
> Signed-off-by: Christian Borntraeger <address@hidden>
> ---
> target-s390x/kvm.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
> index 644f484..0c111f0 100644
> --- a/target-s390x/kvm.c
> +++ b/target-s390x/kvm.c
> @@ -34,6 +34,8 @@
> #include "sysemu/kvm.h"
> #include "cpu.h"
> #include "sysemu/device_tree.h"
> +#include "qapi/qmp/qjson.h"
> +#include "monitor/monitor.h"
>
> /* #define DEBUG_KVM */
>
> @@ -705,9 +707,18 @@ static int handle_intercept(S390CPU *cpu)
> r = handle_instruction(cpu, run);
> break;
> case ICPT_WAITPSW:
> - if (s390_del_running_cpu(cpu) == 0 &&
> - is_special_wait_psw(cs)) {
> - qemu_system_shutdown_request();
> + /* disabled wait, since enabled wait is handled in kernel */
> + if (s390_del_running_cpu(cpu) == 0) {
> + if (is_special_wait_psw(cs)) {
> + qemu_system_shutdown_request();
> + } else {
> + QObject *data;
> +
> + data = qobject_from_jsonf("{ 'action': %s }", "pause");
> + monitor_protocol_event(QEVENT_GUEST_PANICKED, data);
> + qobject_decref(data);
> + vm_stop(RUN_STATE_GUEST_PANICKED);
This is on top of the pvpanic device, right?
Seems good to me, although I don't remember the exact semantics of the
new event. Also, I think you could move this code to a function and
share it with the pvpanic device.
> + }
> }
> r = EXCP_HALTED;
> break;
>
- [Qemu-devel] [PATCH v17 4/6] pvpanic: pass configurable ioport to seabios, (continued)
- [Qemu-devel] [PATCH v17 4/6] pvpanic: pass configurable ioport to seabios, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH v17 3/6] introduce a new qom device to deal with panicked event, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH v17 6/6] pvpanic: add document of pvpanic, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH v17 5/6] pvpanic: create pvpanic device by default, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH v17] Add pvpanic device driver, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH v17] pvpanic: pvpanic device driver, Hu Tao, 2013/04/05
- [Qemu-devel] [PATCH] [RFC] Wire up disabled wait a panicked event on s390, Christian Borntraeger, 2013/04/05
- Re: [Qemu-devel] [PATCH] [RFC] Wire up disabled wait a panicked event on s390,
Luiz Capitulino <=