From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48322) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1afP6C-0001Zu-Oy for qemu-devel@nongnu.org; Mon, 14 Mar 2016 05:47:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1afP67-0006kF-T8 for qemu-devel@nongnu.org; Mon, 14 Mar 2016 05:47:40 -0400 Date: Mon, 14 Mar 2016 10:47:28 +0100 From: Igor Mammedov Message-ID: <20160314104728.5ff09f86@nial.brq.redhat.com> In-Reply-To: <1457672078-17307-1-git-send-email-bharata@linux.vnet.ibm.com> References: <1457672078-17307-1-git-send-email-bharata@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [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: Bharata B Rao Cc: mjrosato@linux.vnet.ibm.com, agraf@suse.de, thuth@redhat.com, pkrempa@redhat.com, ehabkost@redhat.com, aik@ozlabs.ru, qemu-devel@nongnu.org, armbru@redhat.com, borntraeger@de.ibm.com, qemu-ppc@nongnu.org, afaerber@suse.de, pbonzini@redhat.com, mdroth@linux.vnet.ibm.com, david@gibson.dropbear.id.au On Fri, 11 Mar 2016 10:24:29 +0530 Bharata B Rao 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 >