All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.