[PATCH 1/2] Support for the new watchdog action inject-nmi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patches provides support for the 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@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Daniel Hansel <daniel.hansel@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Stefan Zimmermann <stzi@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Tony Krowiak <akrowiak@xxxxxxxxxxxxxxxxxx>
---
 docs/formatdomain.html.in        | 3 +++
 docs/schemas/domaincommon.rng    | 1 +
 include/libvirt/libvirt-domain.h | 1 +
 src/conf/domain_conf.c           | 3 ++-
 src/conf/domain_conf.h           | 1 +
 src/qemu/qemu_monitor_json.c     | 2 +-
 tools/virsh-domain.c             | 3 ++-
 7 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 4e85b51..0ee555d 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -5704,6 +5704,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
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index f0f7400..55dec4e 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3272,6 +3272,7 @@
             <value>pause</value>
             <value>none</value>
             <value>dump</value>
+            <value>inject-nmi</value>
           </choice>
         </attribute>
       </optional>
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index d851225..ed34d53 100644
--- a/include/libvirt/libvirt-domain.h
+++ b/include/libvirt/libvirt-domain.h
@@ -2833,6 +2833,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
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ca55981..ecf7b0d 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -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",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index ba17a8d..e677f30 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -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;
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 13c57d2..aef7c44 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -557,7 +557,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)
 {
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 4c47473..cc1e46d 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -11677,7 +11677,8 @@ VIR_ENUM_IMPL(vshDomainEventWatchdog,
               N_("reset"),
               N_("poweroff"),
               N_("shutdown"),
-              N_("debug"))
+              N_("debug"),
+              N_("inject-nmi"))
 
 static const char *
 vshDomainEventWatchdogToString(int action)
-- 
2.3.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]