]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Support for a new watchdog action inject-nmi
authorBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
Wed, 24 Jun 2015 09:28:41 +0000 (11:28 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 24 Jun 2015 13:26:31 +0000 (15:26 +0200)
This patch provides support for a new watchdog action "inject-nmi" which
allows to define an inject of a non-maskable interrupt into a guest.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.vnet.ibm.com>
Reviewed-by: Daniel Hansel <daniel.hansel@linux.vnet.ibm.com>
Reviewed-by: Stefan Zimmermann <stzi@linux.vnet.ibm.com>
Reviewed-by: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
docs/formatdomain.html.in
docs/schemas/domaincommon.rng
include/libvirt/libvirt-domain.h
src/conf/domain_conf.c
src/conf/domain_conf.h
src/qemu/qemu_monitor_json.c
tools/virsh-domain.c

index f7b9f519a377f009f3dc05f03035acf277c6cdaa..f7f22e50dc487e7d3b493cef59f328cd38d311e8 100644 (file)
@@ -5737,6 +5737,9 @@ qemu-kvm -net nic,model=? /dev/null
           <li>'none' &mdash; do nothing</li>
           <li>'dump' &mdash; automatically dump the guest
             <span class="since">Since 0.8.7</span></li>
+          <li>'inject-nmi' &mdash; inject a non-maskable interrupt
+            into the guest
+            <span class="since">Since 1.3.0</span></li>
         </ul>
         <p>
         Note 1: the 'shutdown' action requires that the guest
index 3014365bb5bd08639b48d993b1b1a0fff0110296..304079745e2518af7e83577c021786c87ee65a8d 100644 (file)
             <value>pause</value>
             <value>none</value>
             <value>dump</value>
+            <value>inject-nmi</value>
           </choice>
         </attribute>
       </optional>
index 7564c2059ef80c445486a0687f12152bccc1a00c..e8202cff3f3e4a04b78e37fc61357162df517c6c 100644 (file)
@@ -2842,6 +2842,7 @@ typedef enum {
     VIR_DOMAIN_EVENT_WATCHDOG_POWEROFF, /* Guest is forcibly powered off */
     VIR_DOMAIN_EVENT_WATCHDOG_SHUTDOWN, /* Guest is requested to gracefully shutdown */
     VIR_DOMAIN_EVENT_WATCHDOG_DEBUG,    /* No action, a debug message logged */
+    VIR_DOMAIN_EVENT_WATCHDOG_INJECTNMI,/* Inject a non-maskable interrupt into guest */
 
 # ifdef VIR_ENUM_SENTINELS
     VIR_DOMAIN_EVENT_WATCHDOG_LAST
index 7c339851a9d4607c5bd2d127c30cd1e1ace546f9..198cf582ba4608b0664de3d369d41c79f108794b 100644 (file)
@@ -506,7 +506,8 @@ VIR_ENUM_IMPL(virDomainWatchdogAction, VIR_DOMAIN_WATCHDOG_ACTION_LAST,
               "poweroff",
               "pause",
               "dump",
-              "none")
+              "none",
+              "inject-nmi")
 
 VIR_ENUM_IMPL(virDomainVideo, VIR_DOMAIN_VIDEO_TYPE_LAST,
               "vga",
index c96a6e420f6429e7f2223b244981dc58af703925..8912bbb540bb8c79d42c7fab329fb6a18a80773c 100644 (file)
@@ -1315,6 +1315,7 @@ typedef enum {
     VIR_DOMAIN_WATCHDOG_ACTION_PAUSE,
     VIR_DOMAIN_WATCHDOG_ACTION_DUMP,
     VIR_DOMAIN_WATCHDOG_ACTION_NONE,
+    VIR_DOMAIN_WATCHDOG_ACTION_INJECTNMI,
 
     VIR_DOMAIN_WATCHDOG_ACTION_LAST
 } virDomainWatchdogAction;
index 71e8f4bada31b5a14063ac415fa0a10e4873fb86..b1ee852383d703fb12b93a09a12100eb0ed482c9 100644 (file)
@@ -555,7 +555,7 @@ static void qemuMonitorJSONHandleRTCChange(qemuMonitorPtr mon, virJSONValuePtr d
 
 VIR_ENUM_DECL(qemuMonitorWatchdogAction)
 VIR_ENUM_IMPL(qemuMonitorWatchdogAction, VIR_DOMAIN_EVENT_WATCHDOG_LAST,
-              "none", "pause", "reset", "poweroff", "shutdown", "debug");
+              "none", "pause", "reset", "poweroff", "shutdown", "debug", "inject-nmi");
 
 static void qemuMonitorJSONHandleWatchdog(qemuMonitorPtr mon, virJSONValuePtr data)
 {
index baf4fa3a967103907173dd7fc21d012003f37373..27d62e910ab5095ff751f73cfd6fc6b7fbd82f2a 100644 (file)
@@ -11703,7 +11703,8 @@ VIR_ENUM_IMPL(vshDomainEventWatchdog,
               N_("reset"),
               N_("poweroff"),
               N_("shutdown"),
-              N_("debug"))
+              N_("debug"),
+              N_("inject-nmi"))
 
 static const char *
 vshDomainEventWatchdogToString(int action)