[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 5/7] pvpanic: Emit GUEST_PVSHUTDOWN QMP event on pvpanic shutd
From: |
Thomas Weißschuh |
Subject: |
[PATCH v7 5/7] pvpanic: Emit GUEST_PVSHUTDOWN QMP event on pvpanic shutdown signal |
Date: |
Sat, 23 Mar 2024 10:39:10 +0100 |
From: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
Emit a QMP event on receiving a PVPANIC_SHUTDOWN event. Even though a typical
SHUTDOWN event will be sent, it will be indistinguishable from a shutdown
originating from other cases (e.g. KVM exit due to KVM_SYSTEM_EVENT_SHUTDOWN)
that also issue the guest-shutdown cause.
A management layer application can detect the new GUEST_PVSHUTDOWN event to
determine if the guest is using the pvpanic interface to request shutdowns.
Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
---
qapi/run-state.json | 14 ++++++++++++++
system/runstate.c | 1 +
2 files changed, 15 insertions(+)
diff --git a/qapi/run-state.json b/qapi/run-state.json
index 789fc34559ad..888a11e62011 100644
--- a/qapi/run-state.json
+++ b/qapi/run-state.json
@@ -455,6 +455,20 @@
{ 'event': 'GUEST_CRASHLOADED',
'data': { 'action': 'GuestPanicAction', '*info': 'GuestPanicInformation' } }
+##
+# @GUEST_PVSHUTDOWN:
+#
+# Emitted when guest submits a shutdown request via pvpanic interface
+#
+# Since: 9.0
+#
+# Example:
+#
+# <- { "event": "GUEST_PVSHUTDOWN",
+# "timestamp": { "seconds": 1648245259, "microseconds": 893771 } }
+##
+{ 'event': 'GUEST_PVSHUTDOWN' }
+
##
# @GuestPanicAction:
#
diff --git a/system/runstate.c b/system/runstate.c
index 572499513034..02b0a1f8b9d0 100644
--- a/system/runstate.c
+++ b/system/runstate.c
@@ -574,6 +574,7 @@ void qemu_system_guest_crashloaded(GuestPanicInformation
*info)
void qemu_system_guest_pvshutdown(void)
{
+ qapi_event_send_guest_pvshutdown();
qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);
}
--
2.44.0
- [PATCH v7 0/7] hw/misc/pvpanic: add support for normal shutdowns, Thomas Weißschuh, 2024/03/23
- [PATCH v7 2/7] tests/qtest/pvpanic: use centralized definition of supported events, Thomas Weißschuh, 2024/03/23
- [PATCH v7 3/7] hw/misc/pvpanic: add local definition for PVPANIC_SHUTDOWN, Thomas Weißschuh, 2024/03/23
- [PATCH v7 4/7] hw/misc/pvpanic: add support for normal shutdowns, Thomas Weißschuh, 2024/03/23
- [PATCH v7 1/7] hw/misc/pvpanic: centralize definition of supported events, Thomas Weißschuh, 2024/03/23
- [PATCH v7 7/7] Revert "docs/specs/pvpanic: mark shutdown event as not implemented", Thomas Weißschuh, 2024/03/23
- [PATCH v7 5/7] pvpanic: Emit GUEST_PVSHUTDOWN QMP event on pvpanic shutdown signal,
Thomas Weißschuh <=
- [PATCH v7 6/7] tests/qtest/pvpanic: add tests for pvshutdown event, Thomas Weißschuh, 2024/03/23