From: "Denis V. Lunev" <den@openvz.org> To: unlisted-recipients:; (no To-header on input) Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, "Andrey Smetanin" <asmetanin@virtuozzo.com>, "Denis V. Lunev" <den@openvz.org>, "Paolo Bonzini" <pbonzini@redhat.com>, "Andreas Färber" <afaerber@suse.de> Subject: [PATCH 11/12] qemu: add crash_occurred flag into CPUState Date: Thu, 2 Jul 2015 19:07:54 +0300 [thread overview] Message-ID: <1435853275-5440-12-git-send-email-den@openvz.org> (raw) In-Reply-To: <1435853275-5440-1-git-send-email-den@openvz.org> From: Andrey Smetanin <asmetanin@virtuozzo.com> CPUState->crash_occurred value inside CPUState marks that guest crash occurred. This value added into cpu common migration subsection. Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Andreas Färber <afaerber@suse.de> --- exec.c | 19 +++++++++++++++++++ include/qom/cpu.h | 1 + vl.c | 3 +++ 3 files changed, 23 insertions(+) diff --git a/exec.c b/exec.c index f7883d2..adf49e8 100644 --- a/exec.c +++ b/exec.c @@ -465,6 +465,24 @@ static const VMStateDescription vmstate_cpu_common_exception_index = { } }; +static bool cpu_common_crash_occurred_needed(void *opaque) +{ + CPUState *cpu = opaque; + + return cpu->crash_occurred != 0; +} + +static const VMStateDescription vmstate_cpu_common_crash_occurred = { + .name = "cpu_common/crash_occurred", + .version_id = 1, + .minimum_version_id = 1, + .needed = cpu_common_crash_occurred_needed, + .fields = (VMStateField[]) { + VMSTATE_UINT32(crash_occurred, CPUState), + VMSTATE_END_OF_LIST() + } +}; + const VMStateDescription vmstate_cpu_common = { .name = "cpu_common", .version_id = 1, @@ -478,6 +496,7 @@ const VMStateDescription vmstate_cpu_common = { }, .subsections = (const VMStateDescription*[]) { &vmstate_cpu_common_exception_index, + &vmstate_cpu_common_crash_occurred, NULL } }; diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 39f0f19..f559a69 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -263,6 +263,7 @@ struct CPUState { bool created; bool stop; bool stopped; + uint32_t crash_occurred; volatile sig_atomic_t exit_request; uint32_t interrupt_request; int singlestep_enabled; diff --git a/vl.c b/vl.c index 38eee1f..9e0aee5 100644 --- a/vl.c +++ b/vl.c @@ -1723,6 +1723,9 @@ void qemu_system_reset(bool report) void qemu_system_guest_panicked(void) { + if (current_cpu) { + current_cpu->crash_occurred = 1; + } qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, &error_abort); vm_stop(RUN_STATE_GUEST_PANICKED); } -- 2.1.4
WARNING: multiple messages have this Message-ID (diff)
From: "Denis V. Lunev" <den@openvz.org> Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>, "Andrey Smetanin" <asmetanin@virtuozzo.com>, "Denis V. Lunev" <den@openvz.org>, "Andreas Färber" <afaerber@suse.de> Subject: [Qemu-devel] [PATCH 11/12] qemu: add crash_occurred flag into CPUState Date: Thu, 2 Jul 2015 19:07:54 +0300 [thread overview] Message-ID: <1435853275-5440-12-git-send-email-den@openvz.org> (raw) In-Reply-To: <1435853275-5440-1-git-send-email-den@openvz.org> From: Andrey Smetanin <asmetanin@virtuozzo.com> CPUState->crash_occurred value inside CPUState marks that guest crash occurred. This value added into cpu common migration subsection. Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com> Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Andreas Färber <afaerber@suse.de> --- exec.c | 19 +++++++++++++++++++ include/qom/cpu.h | 1 + vl.c | 3 +++ 3 files changed, 23 insertions(+) diff --git a/exec.c b/exec.c index f7883d2..adf49e8 100644 --- a/exec.c +++ b/exec.c @@ -465,6 +465,24 @@ static const VMStateDescription vmstate_cpu_common_exception_index = { } }; +static bool cpu_common_crash_occurred_needed(void *opaque) +{ + CPUState *cpu = opaque; + + return cpu->crash_occurred != 0; +} + +static const VMStateDescription vmstate_cpu_common_crash_occurred = { + .name = "cpu_common/crash_occurred", + .version_id = 1, + .minimum_version_id = 1, + .needed = cpu_common_crash_occurred_needed, + .fields = (VMStateField[]) { + VMSTATE_UINT32(crash_occurred, CPUState), + VMSTATE_END_OF_LIST() + } +}; + const VMStateDescription vmstate_cpu_common = { .name = "cpu_common", .version_id = 1, @@ -478,6 +496,7 @@ const VMStateDescription vmstate_cpu_common = { }, .subsections = (const VMStateDescription*[]) { &vmstate_cpu_common_exception_index, + &vmstate_cpu_common_crash_occurred, NULL } }; diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 39f0f19..f559a69 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -263,6 +263,7 @@ struct CPUState { bool created; bool stop; bool stopped; + uint32_t crash_occurred; volatile sig_atomic_t exit_request; uint32_t interrupt_request; int singlestep_enabled; diff --git a/vl.c b/vl.c index 38eee1f..9e0aee5 100644 --- a/vl.c +++ b/vl.c @@ -1723,6 +1723,9 @@ void qemu_system_reset(bool report) void qemu_system_guest_panicked(void) { + if (current_cpu) { + current_cpu->crash_occurred = 1; + } qapi_event_send_guest_panicked(GUEST_PANIC_ACTION_PAUSE, &error_abort); vm_stop(RUN_STATE_GUEST_PANICKED); } -- 2.1.4
next prev parent reply other threads:[~2015-07-02 16:08 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-07-02 16:07 [PATCH v5 0/12] HyperV equivalent of pvpanic driver Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 01/12] kvm/x86: move Hyper-V MSR's/hypercall code into hyperv.c file Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 02/12] kvm: introduce vcpu_debug = kvm_debug + vcpu context Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 03/12] kvm: add hyper-v crash msrs values Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 04/12] kvm/x86: added hyper-v crash msrs into kvm hyperv context Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 05/12] kvm: added KVM_REQ_HV_CRASH value to notify qemu about hyper-v crash Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 06/12] kvm/x86: mark hyper-v crash msrs as partition wide Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 07/12] kvm/x86: added hyper-v crash data and ctl msr's get/set'ers Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:29 ` Paolo Bonzini 2015-07-02 16:29 ` [Qemu-devel] " Paolo Bonzini 2015-07-02 16:07 ` [PATCH 08/12] kvm/x86: add sending hyper-v crash notification to user space Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 09/12] qemu: added qemu_system_guest_panicked() - generic guest panic handler Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` [PATCH 10/12] qemu/kvm: added kvm system event crash handler Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:07 ` Denis V. Lunev [this message] 2015-07-02 16:07 ` [Qemu-devel] [PATCH 11/12] qemu: add crash_occurred flag into CPUState Denis V. Lunev 2015-07-02 16:18 ` Andreas Färber 2015-07-02 16:18 ` [Qemu-devel] " Andreas Färber 2015-07-02 16:26 ` Paolo Bonzini 2015-07-02 16:26 ` [Qemu-devel] " Paolo Bonzini 2015-07-02 16:07 ` [PATCH 12/12] qemu/kvm/x86: hyper-v crash msrs set/get'ers and migration Denis V. Lunev 2015-07-02 16:07 ` [Qemu-devel] " Denis V. Lunev 2015-07-02 16:18 ` Paolo Bonzini 2015-07-02 16:18 ` [Qemu-devel] " Paolo Bonzini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1435853275-5440-12-git-send-email-den@openvz.org \ --to=den@openvz.org \ --cc=afaerber@suse.de \ --cc=asmetanin@virtuozzo.com \ --cc=kvm@vger.kernel.org \ --cc=pbonzini@redhat.com \ --cc=qemu-devel@nongnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.