From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52950) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1adKmp-0001Zs-7B for qemu-devel@nongnu.org; Tue, 08 Mar 2016 11:47:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1adKmk-00075O-QX for qemu-devel@nongnu.org; Tue, 08 Mar 2016 11:47:07 -0500 References: <1457443095-213125-1-git-send-email-imammedo@redhat.com> <1457443095-213125-2-git-send-email-imammedo@redhat.com> From: Eric Blake Message-ID: <56DF0202.8050101@redhat.com> Date: Tue, 8 Mar 2016 09:46:58 -0700 MIME-Version: 1.0 In-Reply-To: <1457443095-213125-2-git-send-email-imammedo@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="DS5AaOJwfWbve3XdA0lTKvW0BnWU4aeUg" Subject: Re: [Qemu-devel] [PATCH v2 1/5] QMP: add query-hotpluggable-cpus List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov , qemu-devel@nongnu.org Cc: mjrosato@linux.vnet.ibm.com, thuth@redhat.com, pkrempa@redhat.com, ehabkost@redhat.com, aik@ozlabs.ru, armbru@redhat.com, agraf@suse.de, borntraeger@de.ibm.com, qemu-ppc@nongnu.org, bharata@linux.vnet.ibm.com, pbonzini@redhat.com, mdroth@linux.vnet.ibm.com, afaerber@suse.de, david@gibson.dropbear.id.au This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --DS5AaOJwfWbve3XdA0lTKvW0BnWU4aeUg Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 03/08/2016 06:18 AM, Igor Mammedov wrote: > it will allow mgmt to query present and possible to hotplug maybe s/possible to hotplug/hotpluggable/ > CPU objects, it is required from a target platform that > wish to support command to implement > qmp_query_hotpluggable_cpus() > functioni, which will return a list of possible CPU objects s/functioni/function/ > with options that would be needed for hotplugging possible > CPU objects. >=20 > For RFC there are: > 'type': 'str' - OQOM CPU object type for usage with device_add s/OQOM/QOM/ ? >=20 > and a set of optional fields that are to used for hotplugging > a CPU objects and would allows mgmt tools to know what/where > it could be hotplugged; > [node],[socket],[core],[thread] >=20 > For present CPUs there is a 'qom-path' field which > would allow mgmt inspect whatever object/abstraction s/inspect/to inspect/ > the target platform considers as CPU object. >=20 > Signed-off-by: Igor Mammedov > --- > qapi-schema.json | 39 +++++++++++++++++++++++++++++= ++++++++ > qmp-commands.hx | 34 +++++++++++++++++++++++++++++= +++ > stubs/Makefile.objs | 1 + > stubs/qmp_query_hotpluggable_cpus.c | 9 +++++++++ > 4 files changed, 83 insertions(+) > create mode 100644 stubs/qmp_query_hotpluggable_cpus.c >=20 > diff --git a/qapi-schema.json b/qapi-schema.json > index 362c9d8..c59840d 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -4122,3 +4122,42 @@ > ## > { 'enum': 'ReplayMode', > 'data': [ 'none', 'record', 'play' ] } > + > +## > +# CpuInstanceProps Worth spelling this as Properties instead of abbreviating? But the type names aren't ABI (they don't affect introspection), so I'm not insisting.= > +# > +# @node: NUMA node ID the CPU belongs to, optional Elsewhere, we use the tag '#optional', not 'optional, so that when we finally get Marc-Andre's patches for auto-generating docs, they will have a sane string to search for. > +# @socket: socket number within node/board the CPU belongs to, optiona= l > +# @core: core number within socket the CPU belongs to, optional > +# @thread: thread number within core the CPU belongs to, optional > +# > +# Since: 2.7 Ah, so you've already conceded that this is too much of a feature too late past 2.6 soft freeze. > +{ 'struct': 'CpuInstanceProps', > + 'data': { '*node': 'int', > + '*socket': 'int', > + '*core': 'int', > + '*thread': 'int' > + } > +} > + > +## > +# @HotpluggableCPU > +# > +# @type: CPU object type for usage with device_add command > +# @qom-path: link to existing CPU object if CPU is present or > +# omitted if CPU is not present. Missing '#optional' marker. > +# @props: list of properties to be used for hotplugging CPU Is this always going to be present, or should it have an '#optional' marker? Right now, it could be present but content-free, as in "props":{}, if that would help users realize that the particular CPU has no further tuning available for hotplug purposes. > +# > +# Since: 2.7 > +{ 'struct': 'HotpluggableCPU', > + 'data': { 'type': 'str', > + '*qom-path': 'str', > + '*props': 'CpuInstanceProps' > + } > +} > + > +## > +# @query-hotpluggable-cpus > +# > +# Since: 2.6 Inconsistent - how can the command be 2.6 if the structures it uses are 2= =2E7? > +{ 'command': 'query-hotpluggable-cpus', 'returns': ['HotpluggableCPU']= } > +Example for x86 target started with -smp 2,sockets=3D2,cores=3D1,threa= ds=3D3,maxcpus=3D6: > + > +-> { "execute": "query-hotpluggable-cpus" } > +<- {"return": [ > + {"core": 0, "socket": 1, "thread": 2}, "type": "qemu64-x86_64-cpu= "}, Not valid JSON. You probably meant: {"return": [ { "props": {"core"...2}, "type"...}, > + {"core": 0, "socket": 0, "thread": 1}, "type": "qemu64-x86_64-cpu= ", "qom-path": "/machine/unattached/device[3]"}, It's okay to line-wrap, to keep 80-column lines. > + {"core": 0, "socket": 0, "thread": 0}, "type": "qemu64-x86_64-cpu= ", "qom-path": "/machine/unattached/device[0]"} > + ]}' > + > +Example for SPAPR target started with -smp 2,cores=3D2,maxcpus=3D4: > + > +-> { "execute": "query-hotpluggable-cpus" } > +<- {"return": [ > + {"core": 1 }, "type": "spapr-cpu-core"}, Again, not valid JSON. But useful examples. --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --DS5AaOJwfWbve3XdA0lTKvW0BnWU4aeUg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJW3wICAAoJEKeha0olJ0NqHL4H/1mVQXksxC2YOx2+l5xypurj jLvdL6oj7X+HTNtpJ5zfyOMWm4svzto+sG2dAdvktblxmlwkbZdBNVhGjzj9izHc R8PlY+DplbmqBrm3wV5M5/s6FJhM2B1/p6qvxbliFCzkHEhTM/ilSeCZJ48HvooZ lQN2RL8LXr3HW06DkbzCP7wVRe72v2gau5TSkx2gl8tusNQQ86DvZvj35ohOpOfi kdBqPraOFShZnTZsTsz4yZOF7m7xgDqC58iVwmJ0FvCEfSzDgQhTpPWiPCCFNbHw UuIv4qrO1GaPL3fIQkAtkJ44SLo6baEGOBeZJFCImARF7I6pt0c/xS6KEttm/Ww= =gg4I -----END PGP SIGNATURE----- --DS5AaOJwfWbve3XdA0lTKvW0BnWU4aeUg--