This series is based on the previous patchset from Chen Fan: https://lists.nongnu.org/archive/html/qemu-devel/2014-05/msg02360.html https://lists.nongnu.org/archive/html/qemu-devel/2013-12/msg04266.html
Patch 1~3: add device_add foo-x86_64-cpu support These three patches try to make cpu hotplug with device_add, and make "-device foo-x86_64-cpu" availableļ¼also we can set apic-id property with command line, if without setting apic-id property, we offer the first unoccupied apic id as the default new apic id. When hotplug cpu with device_add, additional check of APIC ID will be done after cpu object initialization which was different from 'cpu_add' command that check 'ids' at the beginning. Patch 4~10: add i386 cpu hot remove support Via implementing ACPI standard methods _EJ0 in ACPI table, after Guest OS remove one vCPU online, the fireware will store removed bitmap to QEMU, then QEMU could know to notify the assigned vCPU of exiting. Meanwhile, intruduce the QOM command 'device_del' to remove vCPU from QEMU itself. v2: -fix the cpu index duplicated issue in the QMP/HMP command output. Chen Fan (6): cpu: introduce CpuTopoInfo structure for argument simplification cpu: add device_add foo-x86_64-cpu support x86: add x86_cpu_unrealizefn() for cpu apic remove qom cpu: rename variable 'cpu_added_notifier' to 'cpu_hotplug_notifier' i386: implement pc interface cpu_common_unrealizefn() in qom/cpu.c cpu hotplug: implement function cpu_status_write() for vcpu ejection Gu Zheng (4): qom/cpu: move register_vmstate to common CPUClass.realizefn i386: add cpu device_del support qom cpu: add UNPLUG cpu notify support cpus: reclaim allocated vCPU objects cpus.c | 48 +++++++++++++- exec.c | 32 +++++---- hw/acpi/cpu_hotplug.c | 55 +++++++++++++-- hw/acpi/ich9.c | 13 ++-- hw/acpi/piix4.c | 21 +++--- hw/i386/acpi-dsdt-cpu-hotplug.dsl | 6 ++- hw/i386/kvm/apic.c | 8 ++ hw/i386/pc.c | 2 +- hw/intc/apic.c | 10 +++ hw/intc/apic_common.c | 26 ++++++- include/hw/acpi/cpu_hotplug.h | 14 ++++- include/hw/acpi/ich9.h | 2 +- include/hw/cpu/icc_bus.h | 1 + include/hw/i386/apic_internal.h | 3 + include/qom/cpu.h | 12 +++ include/sysemu/kvm.h | 1 + include/sysemu/sysemu.h | 2 +- kvm-all.c | 57 +++++++++++++++- monitor.c | 4 +- qdev-monitor.c | 1 + qom/cpu.c | 29 +++++++-- target-i386/cpu-qom.h | 1 + target-i386/cpu.c | 138 ++++++++++++++++++++++++++++++++++++- target-i386/topology.h | 51 +++++++++---- 24 files changed, 470 insertions(+), 67 deletions(-) -- 1.7.7