From: Wen Congyang <wency@cn.fujitsu.com> To: kvm list <kvm@vger.kernel.org>, qemu-devel <qemu-devel@nongnu.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Avi Kivity <avi@redhat.com>, "Daniel P. Berrange" <berrange@redhat.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>, Jan Kiszka <jan.kiszka@siemens.com>, Gleb Natapov <gleb@redhat.com> Subject: [PATCH 6/7 v6] deal with guest panicked event accoring to -onpanic parameter Date: Fri, 06 Jul 2012 17:41:29 +0800 [thread overview] Message-ID: <4FF6B2C9.10302@cn.fujitsu.com> (raw) In-Reply-To: <4FF6B188.2060607@cn.fujitsu.com> The onpanic parameter can have the following value: 1. none 2. pause 3. poweroff 4. reset The action for each value when the guest is panicked: 1. none: emit QEVENT_GUEST_PANICKED only 2. pause: emit QEVENT_GUEST_PANICKED and pause the guest 3. poweroff: emit QEVENT_GUEST_PANICKED and poweroff the guest 4. reset: emit QEVENT_GUEST_PANICKED and reset the guest Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> --- hw/kvm/pv_event.c | 17 +++++++++++++++++ qemu-options.hx | 15 +++++++++++++++ vl.c | 6 ++++++ 3 files changed, 38 insertions(+), 0 deletions(-) diff --git a/hw/kvm/pv_event.c b/hw/kvm/pv_event.c index d7ded37..890abcd 100644 --- a/hw/kvm/pv_event.c +++ b/hw/kvm/pv_event.c @@ -59,6 +59,23 @@ static void panicked_perform_action(uint32_t panicked_action) } } +int select_panicked_action(const char *p) +{ + if (strcasecmp(p, "none") == 0) { + panicked_action = PANICKED_REPORT; + } else if (strcasecmp(p, "pause") == 0) { + panicked_action = PANICKED_PAUSE; + } else if (strcasecmp(p, "poweroff") == 0) { + panicked_action = PANICKED_POWEROFF; + } else if (strcasecmp(p, "reset") == 0) { + panicked_action = PANICKED_RESET; + } else { + return -1; + } + + return 0; +} + #if defined(KVM_PV_PORT) #include "pv_ioport.c" diff --git a/qemu-options.hx b/qemu-options.hx index 8b66264..4a061bf 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2743,6 +2743,21 @@ DEF("qtest-log", HAS_ARG, QEMU_OPTION_qtest_log, "-qtest-log LOG specify tracing options\n", QEMU_ARCH_ALL) +DEF("onpanic", HAS_ARG, QEMU_OPTION_onpanic, \ + "-onpanic none|pause|poweroff|reset\n" \ + " action when the guest is panicked [default=none]", + QEMU_ARCH_ALL) +STEXI +@item -onpanic @var{action} + +The @var{action} controls what QEmu will do when the guest is panicked. +The default is @code{none} (emit QEVENT_GUEST_PANICKED only). +Other possible actions are: +@code{pause} (emit QEVENT_GUEST_PANICKED and pause the guest), +@code{poweroff} (emit QEVENT_GUEST_PANICKED and forcefully poweroff the guest), +@code{reset} (emit QEVENT_GUEST_PANICKED and forcefully reset the guest). +ETEXI + HXCOMM This is the last statement. Insert new options before this line! STEXI @end table diff --git a/vl.c b/vl.c index f5cd28d..1a68257 100644 --- a/vl.c +++ b/vl.c @@ -3205,6 +3205,12 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_qtest_log: qtest_log = optarg; break; + case QEMU_OPTION_onpanic: + if (select_panicked_action(optarg) == -1) { + fprintf(stderr, "Unknown -onpanic parameter\n"); + exit(1); + } + break; default: os_parse_cmd_args(popt->index, optarg); } -- 1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: Wen Congyang <wency@cn.fujitsu.com> To: kvm list <kvm@vger.kernel.org>, qemu-devel <qemu-devel@nongnu.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Avi Kivity <avi@redhat.com>, "Daniel P. Berrange" <berrange@redhat.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>, Jan Kiszka <jan.kiszka@siemens.com>, Gleb Natapov <gleb@redhat.com> Subject: [Qemu-devel] [PATCH 6/7 v6] deal with guest panicked event accoring to -onpanic parameter Date: Fri, 06 Jul 2012 17:41:29 +0800 [thread overview] Message-ID: <4FF6B2C9.10302@cn.fujitsu.com> (raw) In-Reply-To: <4FF6B188.2060607@cn.fujitsu.com> The onpanic parameter can have the following value: 1. none 2. pause 3. poweroff 4. reset The action for each value when the guest is panicked: 1. none: emit QEVENT_GUEST_PANICKED only 2. pause: emit QEVENT_GUEST_PANICKED and pause the guest 3. poweroff: emit QEVENT_GUEST_PANICKED and poweroff the guest 4. reset: emit QEVENT_GUEST_PANICKED and reset the guest Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> --- hw/kvm/pv_event.c | 17 +++++++++++++++++ qemu-options.hx | 15 +++++++++++++++ vl.c | 6 ++++++ 3 files changed, 38 insertions(+), 0 deletions(-) diff --git a/hw/kvm/pv_event.c b/hw/kvm/pv_event.c index d7ded37..890abcd 100644 --- a/hw/kvm/pv_event.c +++ b/hw/kvm/pv_event.c @@ -59,6 +59,23 @@ static void panicked_perform_action(uint32_t panicked_action) } } +int select_panicked_action(const char *p) +{ + if (strcasecmp(p, "none") == 0) { + panicked_action = PANICKED_REPORT; + } else if (strcasecmp(p, "pause") == 0) { + panicked_action = PANICKED_PAUSE; + } else if (strcasecmp(p, "poweroff") == 0) { + panicked_action = PANICKED_POWEROFF; + } else if (strcasecmp(p, "reset") == 0) { + panicked_action = PANICKED_RESET; + } else { + return -1; + } + + return 0; +} + #if defined(KVM_PV_PORT) #include "pv_ioport.c" diff --git a/qemu-options.hx b/qemu-options.hx index 8b66264..4a061bf 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2743,6 +2743,21 @@ DEF("qtest-log", HAS_ARG, QEMU_OPTION_qtest_log, "-qtest-log LOG specify tracing options\n", QEMU_ARCH_ALL) +DEF("onpanic", HAS_ARG, QEMU_OPTION_onpanic, \ + "-onpanic none|pause|poweroff|reset\n" \ + " action when the guest is panicked [default=none]", + QEMU_ARCH_ALL) +STEXI +@item -onpanic @var{action} + +The @var{action} controls what QEmu will do when the guest is panicked. +The default is @code{none} (emit QEVENT_GUEST_PANICKED only). +Other possible actions are: +@code{pause} (emit QEVENT_GUEST_PANICKED and pause the guest), +@code{poweroff} (emit QEVENT_GUEST_PANICKED and forcefully poweroff the guest), +@code{reset} (emit QEVENT_GUEST_PANICKED and forcefully reset the guest). +ETEXI + HXCOMM This is the last statement. Insert new options before this line! STEXI @end table diff --git a/vl.c b/vl.c index f5cd28d..1a68257 100644 --- a/vl.c +++ b/vl.c @@ -3205,6 +3205,12 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_qtest_log: qtest_log = optarg; break; + case QEMU_OPTION_onpanic: + if (select_panicked_action(optarg) == -1) { + fprintf(stderr, "Unknown -onpanic parameter\n"); + exit(1); + } + break; default: os_parse_cmd_args(popt->index, optarg); } -- 1.7.1
next prev parent reply other threads:[~2012-07-06 9:56 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-07-06 9:36 [PATCH v6] kvm: notify host when the guest is panicked Wen Congyang 2012-07-06 9:36 ` [Qemu-devel] " Wen Congyang 2012-07-06 9:38 ` [PATCH 1/7 v6] start vm after reseting it Wen Congyang 2012-07-06 9:38 ` [Qemu-devel] " Wen Congyang 2012-07-06 9:38 ` [PATCH 2/7 v6] update linux headers Wen Congyang 2012-07-06 9:38 ` [Qemu-devel] " Wen Congyang 2012-07-06 10:25 ` Jan Kiszka 2012-07-06 10:25 ` [Qemu-devel] " Jan Kiszka 2012-07-06 10:50 ` Wen Congyang 2012-07-06 10:50 ` [Qemu-devel] " Wen Congyang 2012-07-06 10:50 ` Wen Congyang 2012-07-06 10:55 ` [Qemu-devel] " 陳韋任 (Wei-Ren Chen) 2012-07-06 10:55 ` 陳韋任 (Wei-Ren Chen) 2012-07-06 11:16 ` Jan Kiszka 2012-07-06 11:16 ` [Qemu-devel] " Jan Kiszka 2012-07-07 14:35 ` Paul Gortmaker 2012-07-07 14:35 ` [Qemu-devel] " Paul Gortmaker 2012-07-06 9:39 ` [PATCH 3/7 v6] add a new runstate: RUN_STATE_GUEST_PANICKED Wen Congyang 2012-07-06 9:39 ` [Qemu-devel] " Wen Congyang 2012-07-06 9:40 ` [PATCH 4/7 v6] add a new qevent: QEVENT_GUEST_PANICKED Wen Congyang 2012-07-06 9:40 ` [Qemu-devel] " Wen Congyang 2012-07-06 9:41 ` [PATCH 5/7 v6] introduce a new qom device to deal with panicked event Wen Congyang 2012-07-06 9:41 ` [Qemu-devel] " Wen Congyang 2012-07-06 11:05 ` Jan Kiszka 2012-07-06 11:05 ` [Qemu-devel] " Jan Kiszka 2012-07-06 11:05 ` Jan Kiszka 2012-07-18 1:54 ` Wen Congyang 2012-07-18 1:54 ` [Qemu-devel] " Wen Congyang 2012-07-18 9:19 ` Jan Kiszka 2012-07-18 9:19 ` [Qemu-devel] " Jan Kiszka 2012-07-18 9:25 ` Jan Kiszka 2012-07-18 9:25 ` [Qemu-devel] " Jan Kiszka 2012-07-06 9:41 ` Wen Congyang [this message] 2012-07-06 9:41 ` [Qemu-devel] [PATCH 6/7 v6] deal with guest panicked event accoring to -onpanic parameter Wen Congyang 2012-07-06 11:12 ` Jan Kiszka 2012-07-06 11:12 ` [Qemu-devel] " Jan Kiszka 2012-07-06 11:12 ` Jan Kiszka 2012-07-06 9:41 ` [PATCH 7/7 v6] deal with panicked event accoring to '-machine panic_action=action' Wen Congyang 2012-07-06 9:41 ` [Qemu-devel] " Wen Congyang 2012-07-06 11:09 ` Jan Kiszka 2012-07-06 11:09 ` [Qemu-devel] " Jan Kiszka 2012-07-06 11:09 ` Jan Kiszka 2012-07-09 10:44 ` Wen Congyang 2012-07-09 10:44 ` [Qemu-devel] " Wen Congyang
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=4FF6B2C9.10302@cn.fujitsu.com \ --to=wency@cn.fujitsu.com \ --cc=avi@redhat.com \ --cc=berrange@redhat.com \ --cc=gleb@redhat.com \ --cc=jan.kiszka@siemens.com \ --cc=kamezawa.hiroyu@jp.fujitsu.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --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.