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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list