From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41224) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ag4CJ-0003ii-Kc for qemu-devel@nongnu.org; Wed, 16 Mar 2016 01:40:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ag4CE-0005KS-9H for qemu-devel@nongnu.org; Wed, 16 Mar 2016 01:40:43 -0400 Date: Wed, 16 Mar 2016 16:41:36 +1100 From: David Gibson Message-ID: <20160316164136.74299a4d@voom.fritz.box> In-Reply-To: <20160316051941.GE13176@in.ibm.com> References: <1458048248-4605-1-git-send-email-imammedo@redhat.com> <1458048248-4605-3-git-send-email-imammedo@redhat.com> <20160316051941.GE13176@in.ibm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/VSRjT_YBr_Gs/oDvvEcgelM"; protocol="application/pgp-signature" Subject: Re: [Qemu-devel] [RFC v3 2/2] spapr: implement query-hotpluggable-cpus QMP command 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, pkrempa@redhat.com, ehabkost@redhat.com, qemu-devel@nongnu.org, armbru@redhat.com, borntraeger@de.ibm.com, qemu-ppc@nongnu.org, cornelia.huck@de.ibm.com, Igor Mammedov , afaerber@suse.de --Sig_/VSRjT_YBr_Gs/oDvvEcgelM Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Wed, 16 Mar 2016 10:49:41 +0530 Bharata B Rao wrote: > On Tue, Mar 15, 2016 at 02:24:08PM +0100, Igor Mammedov wrote: > > it returns a list of present/possible to hotplug CPU > > objects with a list of properties to use with > > device_add. > >=20 > > in spapr case returned list would looks like: =20 > > -> { "execute": "query-hotpluggable-cpus" } =20 > > <- {"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]"} > > ]}' > >=20 > > TODO: > > add 'node' property for core <-> numa node mapping > >=20 > > Signed-off-by: Igor Mammedov > > --- > > it's only compile tested > > --- > > hw/ppc/spapr.c | 32 ++++++++++++++++++++++++++++++++ > > 1 file changed, 32 insertions(+) > >=20 > > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > > index b1e9ba2..e1ce983 100644 > > --- a/hw/ppc/spapr.c > > +++ b/hw/ppc/spapr.c > > @@ -65,6 +65,7 @@ > > #include "hw/compat.h" > > #include "qemu-common.h" > > #include "hw/ppc/spapr_cpu_core.h" > > +#include "qmp-commands.h" > >=20 > > #include > >=20 > > @@ -2399,6 +2400,37 @@ static unsigned spapr_cpu_index_to_socket_id(uns= igned cpu_index) > > return cpu_index / smp_threads / smp_cores; > > } > >=20 > > +HotpluggableCPUList *qmp_query_hotpluggable_cpus(Error **errp) > > +{ > > + int i; > > + HotpluggableCPUList *head =3D NULL; > > + sPAPRMachineState *spapr =3D SPAPR_MACHINE(qdev_get_machine()); > > + int spapr_max_cores =3D max_cpus / smp_threads; > > + > > + for (i =3D 0; i < spapr_max_cores; i++) { > > + HotpluggableCPUList *list_item =3D g_new0(typeof(*list_item), = 1); > > + HotpluggableCPU *cpu_item =3D g_new0(typeof(*cpu_item), 1); > > + CpuInstanceProperties *cpu_props =3D g_new0(typeof(*cpu_props)= , 1); > > + > > + cpu_item->type =3D g_strdup(TYPE_SPAPR_CPU_CORE); > > + cpu_item->vcpus_count =3D smp_threads; =20 >=20 > Shouldn't this be fetched from "threads" property of the core device > instead of directly using smp_threads ? But again, what that would mean > for not-yet-plugged in cores and how to get that for them is a question. Yeah, I think Igor's patch is correct here. The information flow goes the other direction: the machine type code advertises smp_threads here, which management then passes back to the device_add spapr-core in the threads property. --=20 David Gibson Senior Software Engineer, Virtualization, Red Hat --Sig_/VSRjT_YBr_Gs/oDvvEcgelM Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJW6PIQAAoJEGw4ysog2bOS2E0QAL8iITNQZUXFjSDa80On8Y8A AFe5RQdOIwm4w0r5hkqOd7K5m1HLQPfzrjpUjHjUob/0x3Tvz+9uoLZJcOlPg1s9 M8Lf2DYxXfMdrANmj/H4aV+XOzfrUht/WiqOnAGcg7Kc0EdB4BYzDNGXTfHowUd5 lAmUaxPT8CGdeEz8oOsE+IuUJ0DpF8EYiP8kUKEaXT1owFyIQFH979dDK/OHuEiM 90AFJlWc3ar6D6/LyK6BjGoqc6qyIKALPSotAffi8BoNJh2Zwxu6GGij/VN8nlkI Wpz4pTuudA3H10LFNqmQj5eokY9oZVNiAyJw4rvPRjcul6Yn+oj5CqiZq7fJ1gPB 7mEyJL0Y1bZcxNjh3o7IUE5axNp5Cc9kwiDumiuaAVxmokO1iz0NWeNcT5h6I0eR LMs6UhcwNj1M+kJI+FkGwxDhoXhjID34BqZvl7fcwpxt8PBfhY8oA3WTRVV1QqJU eV+xix/Px/IVptq+5LK6Y4w4O7gchd7nuyc3NxlP5ljdiEHcq/75Wm9Xqx3mwjEa y/PxlGU+mmsjzn6FdlXnV583+4qP0LlUY/m/FdYUFpSBDO2VnV1d8vm8DnYDesIX f2D1MEv4vwr41zMpPJR9A2iMNY8+GZiZvoXpQo2/nx68eBQptzE8fE6ZzalJydU9 uP+0hB4X7ZAia82HSH1b =KMPx -----END PGP SIGNATURE----- --Sig_/VSRjT_YBr_Gs/oDvvEcgelM--