Memory hot unplug are both asynchronous procedures. When the unplug operation happens, unplug request cb is called first. And when guest OS finished handling unplug, unplug cb will be called to do the real removal of device.
This series depends on the following patchset. [PATCH v2 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg03929.html v3: - commit message changes - reorganize the patchset, squash and separate some patches - update specs about acpi_mem_hotplug - first cleanup external state, then un-map and un-register memory device v2: - do a generic for acpi to send gpe event - unparent object by PC_MACHINE - update description in acpi_mem_hotplug.txt - combine the last two patches in the last version - cleanup external state in acpi_memory_unplug_cb Hu Tao (1): ich9, piix4, pc-dimm: Add memory hot unplug request support Tang Chen (7): acpi, mem-hotplug: Use PC_DIMM_SLOT_PROP in acpi_memory_plug_cb(). acpi, mem-hotplug: Add acpi_memory_slot_status() to get MemStatus. acpi, mem-hotplug: Add acpi_send_gpe_event() to rise sci for memory hotplug. acpi, mem-hotplug: Add unplug request cb for memory device. acpi, mem-hotplug: Add unplug cb for memory device. ich9, piix4, pc-dimm: Add memory hot unplug support acpi: Add hardware implementation for memory hot unplug. Zhu Guihua (2): qdev: make qdev_get_hotplug_handler() non-static ssdt-mem: add MEMORY_SLOT_EJECT_METHOD docs/specs/acpi_mem_hotplug.txt | 11 ++++- hw/acpi/core.c | 7 +++ hw/acpi/ich9.c | 19 +++++++-- hw/acpi/memory_hotplug.c | 90 +++++++++++++++++++++++++++++++++------ hw/acpi/piix4.c | 16 +++++-- hw/core/qdev.c | 2 +- hw/i386/acpi-dsdt-mem-hotplug.dsl | 11 ++++- hw/i386/pc.c | 54 +++++++++++++++++++++-- hw/i386/ssdt-mem.dsl | 5 +++ include/hw/acpi/acpi.h | 3 ++ include/hw/acpi/memory_hotplug.h | 6 +++ include/hw/acpi/pc-hotplug.h | 2 + include/hw/qdev-core.h | 1 + trace-events | 1 + 14 files changed, 199 insertions(+), 29 deletions(-) -- 1.9.3