Daniel Henrique Barboza <danielhb413@gmail.com> writes:
At this moment we only provide one event to report a hotunplug error,
MEM_UNPLUG_ERROR. As of Linux kernel 5.12 and QEMU 6.0.0, the pseries
machine is now able to report unplug errors for other device types, such
as CPUs.
Instead of creating a (device_type)_UNPLUG_ERROR for each new device,
create a generic DEVICE_UNPLUG_GUEST_ERROR event that can be used by all
guest side unplug errors in the future. This event has a similar API as
the existing DEVICE_DELETED event, always providing the QOM path of the
device and dev->id if there's any.
With this new generic event, MEM_UNPLUG_ERROR is now marked as deprecated.
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
[...]
diff --git a/qapi/qdev.json b/qapi/qdev.json
index 0e9cb2ae88..8b1a1dd43b 100644
--- a/qapi/qdev.json
+++ b/qapi/qdev.json
@@ -84,7 +84,9 @@
# This command merely requests that the guest begin the hot removal
# process. Completion of the device removal process is signaled with a
# DEVICE_DELETED event. Guest reset will automatically complete removal
-# for all devices.
+# for all devices. If a guest-side error in the hot removal process is
+# detected, the device will not be removed and a
DEVICE_UNPLUG_GUEST_ERROR
+# event is sent. Some errors cannot be detected.
#
# Since: 0.14
#
@@ -124,3 +126,27 @@
##
{ 'event': 'DEVICE_DELETED',
'data': { '*device': 'str', 'path': 'str' } }
+
+##
+# @DEVICE_UNPLUG_GUEST_ERROR:
+#
+# Emitted when a device hot unplug fails due to an internal guest
+# error.
Suggest to scratch "internal".