This patchset adds CPU hotplug support for sPAPR PowerPC guests using device_add and device_del commands
(qemu) device_add POWER8-powerpc64-cpu,id=cpu0 The first 5 patches are generic changes. Out of these 4/10 is required by x86 and s390 as well and has been posted in their CPU hotplug patchsets. I believe 2/10 and 3/10 would be useful for other archs too. Andreas - If and when found appropriate, would you be taking patches 1 to 5 via your tree ? Should I post them as separate pre-req patchset ? Patches 6 to 10 are Power specific. Changes in v5 ------------- - Get rid of a new element (cpu->queued) the previous version introduced and have the same logic to determine if cpu is already dequeued for both implementations of cpu_exec_exit(). (2/10) - Call cpu_remove() from cpu_remove_sync() instead of code duplication. (5/10) - s/smp_cores/spapr_smp_cores (8/10) - Set correct tb offset for hotplugged CPU. (8/10) - s/spapr_hotplug_req_add_event/spapr_hotplug_req_add_by_index (8/10) - Removed support for incomplete cores and added a separate patch to prevent such topologies. (8/10 and 1/10) v4: https://lists.gnu.org/archive/html/qemu-devel/2015-08/msg00650.html This series applies on top of ppc-for-2.6 branch of David Gibson's tree. Bharata B Rao (9): vl: Don't allow CPU toplogies with partially filled cores exec: Remove cpu from cpus list during cpu_exec_exit() exec: Do vmstate unregistration from cpu_exec_exit() cpu: Add a sync version of cpu_remove() xics_kvm: Add cpu_destroy method to XICS spapr: Enable CPU hotplug for pseries-2.5 and add CPU DRC DT entries spapr: CPU hotplug support spapr: CPU hot unplug support target-ppc: Enable CPU hotplug for POWER8 CPU family Gu Zheng (1): cpu: Reclaim vCPU objects cpus.c | 53 ++++++++++ exec.c | 30 ++++++ hw/intc/xics.c | 12 +++ hw/intc/xics_kvm.c | 13 ++- hw/ppc/spapr.c | 250 +++++++++++++++++++++++++++++++++++++++++++- hw/ppc/spapr_events.c | 3 + hw/ppc/spapr_rtas.c | 24 +++++ include/hw/ppc/spapr.h | 1 + include/hw/ppc/xics.h | 2 + include/qom/cpu.h | 18 ++++ include/sysemu/kvm.h | 1 + kvm-all.c | 57 +++++++++- kvm-stub.c | 5 + target-ppc/translate_init.c | 10 ++ vl.c | 9 ++ 15 files changed, 483 insertions(+), 5 deletions(-) -- 2.1.0