On Mon, Apr 11, 2016 at 11:23:57AM +0200, Igor Mammedov wrote: > On Mon, 11 Apr 2016 14:54:24 +1000 > David Gibson <dgib...@redhat.com> wrote: > > > On Fri, 8 Apr 2016 13:29:56 +0200 > > Igor Mammedov <imamm...@redhat.com> wrote: > > > > > it returns a list of present/possible to hotplug CPU > > > objects with a list of properties to use with > > > device_add. > > > > > > in spapr case returned list would looks like: > > > -> { "execute": "query-hotpluggable-cpus" } > > > <- {"return": [ > > > { "props": { "core": 1 }, "type": "spapr-cpu-core", > > > "vcpus-count": 2 }, > > > { "props": { "core": 0 }, "type": "spapr-cpu-core", > > > "vcpus-count": 2, > > > "qom-path": "/machine/unattached/device[0]"} > > > ]}' > > > > > > TODO: > > > add 'node' property for core <-> numa node mapping > > > > > > Signed-off-by: Igor Mammedov <imamm...@redhat.com> > > > --- > > > it's only compile tested > > > v2: > > > - s/qmp_query_hotpluggable_cpus/MachineClass->query_hotpluggable_cpus/ > > > callback > > > --- > > > hw/ppc/spapr.c | 33 +++++++++++++++++++++++++++++++++ > > > 1 file changed, 33 insertions(+) > > > > > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > > index 760a42f..c38995e 100644 > > > --- a/hw/ppc/spapr.c > > > +++ b/hw/ppc/spapr.c > > > @@ -66,6 +66,7 @@ > > > #include "hw/compat.h" > > > #include "qemu/cutils.h" > > > #include "hw/ppc/spapr_cpu_core.h" > > > +#include "qmp-commands.h" > > > > > > #include <libfdt.h> > > > > > > @@ -2382,6 +2383,37 @@ static unsigned > > > spapr_cpu_index_to_socket_id(unsigned cpu_index) > > > return cpu_index / smp_threads / smp_cores; > > > } > > > > > > +static HotpluggableCPUList *spapr_query_hotpluggable_cpus(MachineState > > > *machine) > > > +{ > > > + int i; > > > + HotpluggableCPUList *head = NULL; > > > + sPAPRMachineState *spapr = SPAPR_MACHINE(machine); > > > + int spapr_max_cores = max_cpus / smp_threads; > > > + > > > + for (i = 0; i < spapr_max_cores; i++) { > > > + HotpluggableCPUList *list_item = g_new0(typeof(*list_item), 1); > > > + HotpluggableCPU *cpu_item = g_new0(typeof(*cpu_item), 1); > > > + CpuInstanceProperties *cpu_props = g_new0(typeof(*cpu_props), 1); > > > + > > > + cpu_item->type = g_strdup(TYPE_SPAPR_CPU_CORE); > > > > So, Bharata's latest core stuff is (as suggested by you and others) > > moving to using different derived types, rather than a cpu_model > > property, so this will need to change a bit. > Yep, I guess so. > It would be even better if Bharata took merged this patches > with his series and took care to make necessary changes to > this call back.
I will take these patches into my series and make the necessary changes. Regards, Bharata.