Add a new libvirt event VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED that will
handle failure to unplug a device if we are certain that it will not be unplugged
and wire up the ACPI_DEVICE_OST qemu event that is emitted on memory hotunplug
failure so that the event is propagated and the API fails in such case.
Along with that a few refactors were necessary.
Peter Krempa (7):
qemu: hotplug: Properly handle errors in
qemuDomainWaitForDeviceRemoval
qemu: hotplug: Refactor semantics of qemuDomainWaitForDeviceRemoval
qemu: Use domain condition for device removal singalling
qemu: hotplug: Add support for signalling device unplug failure
Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED event
qemu: monitor: Add support for ACPI_DEVICE_OST event handling
qemu: process: Wire up ACPI OST events to notify users of failed
memory unplug
daemon/remote.c | 36 +++++++++++++
include/libvirt/libvirt-domain.h | 21 ++++++++
src/conf/domain_event.c | 84 ++++++++++++++++++++++++++++++
src/conf/domain_event.h | 7 +++
src/libvirt_private.syms | 2 +
src/qemu/qemu_domain.c | 4 --
src/qemu/qemu_domain.h | 18 ++++++-
src/qemu/qemu_hotplug.c | 110 +++++++++++++++++----------------------
src/qemu/qemu_hotplug.h | 3 +-
src/qemu/qemu_monitor.c | 19 +++++++
src/qemu/qemu_monitor.h | 18 +++++++
src/qemu/qemu_monitor_json.c | 39 ++++++++++++++
src/qemu/qemu_process.c | 71 ++++++++++++++++++++++++-
src/remote/remote_driver.c | 30 +++++++++++
src/remote/remote_protocol.x | 14 ++++-
src/remote_protocol-structs | 6 +++
tools/virsh-domain.c | 18 +++++++
17 files changed, 428 insertions(+), 72 deletions(-)
--
2.8.0