diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index f7b9f519a3..f7f22e50dc 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -5737,6 +5737,9 @@ qemu-kvm -net nic,model=? /dev/null
  • 'none' — do nothing
  • 'dump' — automatically dump the guest Since 0.8.7
  • +
  • 'inject-nmi' — inject a non-maskable interrupt + into the guest + Since 1.3.0
  • Note 1: the 'shutdown' action requires that the guest diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 3014365bb5..304079745e 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -3272,6 +3272,7 @@ pause none dump + inject-nmi diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h index 7564c2059e..e8202cff3f 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -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 diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 7c339851a9..198cf582ba 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 c96a6e420f..8912bbb540 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 71e8f4bada..b1ee852383 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -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) { diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index baf4fa3a96..27d62e910a 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -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)