On Tue, 5 Apr 2016 20:25:57 +0530 Bharata B Rao <bhar...@linux.vnet.ibm.com> wrote:
> On Mon, Apr 04, 2016 at 04:44:27PM +0200, Igor Mammedov wrote: > > On Thu, 31 Mar 2016 14:09:09 +0530 > > Bharata B Rao <bhar...@linux.vnet.ibm.com> wrote: > > > > > Hi, > > > > > > This is v2.1 of "Core based CPU hotplug for PowerPC sPAPR". v2 was > > > posted here: > > > https://lists.gnu.org/archive/html/qemu-ppc/2016-03/msg00201.html > > > > > > I am making this v2.1 instead of v3 as this introduces a change in > > > device_add semantics and if we don't want to continue this, I > > > will go back to the previous v2 semantics from v3 onwards. v2 had > > > spapr-cpu-core device that served as CPU core device for all > > > types of PowerPCCPU threads. In this version however, > > > spapr-cpu-core becomes an abstract device and we will have > > > different core devices for each of the PowerPCCPU type. So in > > > this version, the hotplug semantics looks like this: > > > > > > (qemu) device_add > > > POWER8-spapr-cpu-core,id=core2,core=16[,threads=4] > > > > > > cpu_model specification is gone as it becomes redundant with > > > different core types for each CPU type. CPU core types are > > > defined only for host, POWER7 and POWER8 models only (and not for > > > their variants/aliases) yet. > > > > > > I have mostly taken care of all the review comments that I got > > > for v2. > > Could you rebase on top of current master, pls? > > Sure, I usually update, but missed it this time. > > > > > and fix compile error: > > hw/cpu/core.c: In function ‘core_prop_set_core’: > > hw/cpu/core.c:31:9: error: implicit declaration of function > > ‘error_propagate’ [-Werror=implicit-function-declaration] > > error_propagate(errp, local_err); > > I don't see this when compiling all the targets either on x86 or PPC > systems. May be this is seen with latest master, in any case will > check this out when spinning next version. Series also breaks 'make check' gdb ./ppc64-softmmu/qemu-system-ppc64 Program received signal SIGSEGV, Segmentation fault. object_class_get_name (klass=0x0) at qom/object.c:748 748 return klass->type->name; (gdb) bt #0 object_class_get_name (klass=0x0) at qom/object.c:748 #1 0x0000555555795aff in POWER7_spapr_cpu_core_create_threads (errp=0x7fffffffdc00, threads=0x1, dev=0x5555565bf930) at /home/imammedo/builds/qemu/hw/ppc/spapr_cpu_core.c:328 #2 POWER7_spapr_cpu_core_realize (dev=0x5555565bf930, errp=0x7fffffffdc80) at /home/imammedo/builds/qemu/hw/ppc/spapr_cpu_core.c:328 #3 0x00005555558af84c in device_set_realized (obj=0x5555565bf930, value=<optimized out>, errp=0x55555649fbd0 <error_fatal>) at hw/core/qdev.c:1074 #4 0x00005555559b542e in property_set_bool (obj=0x5555565bf930, v=<optimized out>, name=<optimized out>, opaque=0x5555565bfb20, errp=0x55555649fbd0 <error_fatal>) at qom/object.c:1853 #5 0x00005555559b92b7 in object_property_set_qobject (obj=obj@entry=0x5555565bf930, value=value@entry=0x5555565bedd0, name=name@entry=0x555555ad403e "realized", errp=errp@entry=0x55555649fbd0 <error_fatal>) at qom/qom-qobject.c:26 #6 0x00005555559b7130 in object_property_set_bool (obj=0x5555565bf930, value=<optimized out>, name=0x555555ad403e "realized", errp=0x55555649fbd0 <error_fatal>) at qom/object.c:1150 #7 0x0000555555786fc1 in ppc_spapr_init (machine=0x55555659fe50) at /home/imammedo/builds/qemu/hw/ppc/spapr.c:1859 #8 0x00005555556e54af in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4513