From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37677) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aeF6G-0004OQ-7M for qemu-devel@nongnu.org; Thu, 10 Mar 2016 23:54:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aeF6C-00042H-Rm for qemu-devel@nongnu.org; Thu, 10 Mar 2016 23:54:56 -0500 Received: from e28smtp09.in.ibm.com ([125.16.236.9]:57744) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aeF6C-00041x-2g for qemu-devel@nongnu.org; Thu, 10 Mar 2016 23:54:52 -0500 Received: from localhost by e28smtp09.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 11 Mar 2016 10:24:48 +0530 From: Bharata B Rao Date: Fri, 11 Mar 2016 10:24:29 +0530 Message-Id: <1457672078-17307-1-git-send-email-bharata@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC PATCH v2 0/9] Core based CPU hotplug for PowerPC sPAPR List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mjrosato@linux.vnet.ibm.com, thuth@redhat.com, pkrempa@redhat.com, ehabkost@redhat.com, aik@ozlabs.ru, Bharata B Rao , armbru@redhat.com, agraf@suse.de, borntraeger@de.ibm.com, qemu-ppc@nongnu.org, pbonzini@redhat.com, imammedo@redhat.com, mdroth@linux.vnet.ibm.com, afaerber@suse.de, david@gibson.dropbear.id.au 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] 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 -- 2.1.0