On Fri, 11 Mar 2016 10:24:29 +0530 Bharata B Rao <bhar...@linux.vnet.ibm.com> wrote:
> Hi, > > This is the next version of "Core based CPU hotplug for PowerPC sPAPR" that > was posted at > https://lists.gnu.org/archive/html/qemu-ppc/2016-03/msg00081.html > > device_add semantics > -------------------- > For -smp 16,sockets=1,cores=2,threads=8,maxcpus=32 > (qemu) device_add spapr-cpu-core,id=core2,core=16,cpu_model=host[,threads=8] do you plan to allow user to hotplug different cpu_models? If not it would be better to hide cpu_model from user and set it from machine pre_plug handler. > > Major changes in this version > ----------------------------- > - Based on the review feedback, removed the links from machine object > to the core objects. > - With that, the concept of using the links as slots where core object sits > is gone. > - String slot name which was being used as slot= with device_add now > becomes an integer core id being specified as core=. > - threads property which indicates the number of threads in the core > moves from spapr-cpu-core type to cpu-core type. > - Threads creation moves from core's property setter to core's realizefn. > - Igor's proposed pre_plug handler isn't yet used in this patchset, but it > wouldn't take much effort to switch to it. Waiting for some review/consensus > on Igor's patchset before switching to it. > - This patchset will now work with Igor's query-hotpluggable-cpus QMP > interface. > > Other changes > ------------- > - Core ID that is used with device_add is in fact device tree ID now. > - DRC indexes are based on core_dt_id now. There are a couple of places > where core device's thread0 is used to fetch the DRC index, but changing > that requires bigger change of converting the CPUs DT code generation > to iterate over cores instead of threads. > - Coverted while(1) to do-while() as suggeted by Thomas Huth (3/9). > - Creation of spapr-cpu-core device and conversion of boot CPUs into > cores merged into a single patch (6/9). > - Topologies with incomplete cores are prevented from booting only with > machine type versions that support CPU DR (6/9). > - Conversion of boot CPUs into cores is done only for machine type versions > that support CPU DR (6/9). > - Take care of recovery from failure in plug handler when CPU hotplug isn't > supported correctly. This will not be needed when we prevent such > attempts from pre_plug handler (9/9). > Bharata B Rao (8): > 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() > cpu: Abstract CPU core type > spapr: CPU core device > spapr: CPU hotplug support > xics,xics_kvm: Handle CPU unplug correctly > spapr: CPU hot unplug support > > Gu Zheng (1): > cpu: Reclaim vCPU objects > > cpus.c | 51 +++++- > exec.c | 41 ++++- > hw/cpu/Makefile.objs | 1 + > hw/cpu/core.c | 87 ++++++++++ > hw/intc/xics.c | 14 ++ > hw/intc/xics_kvm.c | 8 +- > hw/ppc/Makefile.objs | 1 + > hw/ppc/spapr.c | 153 +++++++++++++++-- > hw/ppc/spapr_cpu_core.c | 354 > ++++++++++++++++++++++++++++++++++++++++ > hw/ppc/spapr_events.c | 3 + > hw/ppc/spapr_rtas.c | 24 +++ > include/hw/cpu/core.h | 31 ++++ > include/hw/ppc/spapr.h | 7 + > include/hw/ppc/spapr_cpu_core.h | 42 +++++ > include/hw/ppc/xics.h | 1 + > include/qom/cpu.h | 18 ++ > include/sysemu/kvm.h | 1 + > kvm-all.c | 57 ++++++- > kvm-stub.c | 5 + > 19 files changed, 871 insertions(+), 28 deletions(-) > create mode 100644 hw/cpu/core.c > create mode 100644 hw/ppc/spapr_cpu_core.c > create mode 100644 include/hw/cpu/core.h > create mode 100644 include/hw/ppc/spapr_cpu_core.h >