On Fri, Apr 05, 2013 at 02:10:54PM -0300, Eduardo Habkost wrote:
> On Fri, Apr 05, 2013 at 04:37:16PM +0200, Igor Mammedov wrote:
> [...]
> > diff --git a/qapi-schema.json b/qapi-schema.json
> > index db542f6..a760ed5 100644
> > --- a/qapi-schema.json
> > +++ b/qapi-schema.json
> > @@ -1387,6 +1387,17 @@
> > { 'command': 'cpu', 'data': {'index': 'int'} }
> >
> > ##
> > +# @cpu-add
> > +#
> > +# Adds CPU with specified id
> > +#
> > +# @id: cpu id of CPU to be created
>
> Can we have the semantics/constraints of "id" documented here? Is it an
> arbitrary ID chosen by the caller? Does it have to be the APIC ID? Does
> it have to be the index of the CPU in the CPU list? How the IDs of
> existing CPUs set using "-smp" are allocated?
>
> I am looking at the code right now to understand how this implementation
> works, but the documentation could contain or point to documentation on
> how the "id" parameter is used and interpreted.
So, the answer to my own question seems to be on patch 21/22. Let me
check if I understand this correctly:
@id: cpu id of the CPU to be created. It must be one of the the
available IDs listed at the "/machine/icc-bridge/cpu[0..N]" links.
Is the above correct?
Now, my question is: suppose a caller starts QEMU as:
$ qemu -smp 18,cores=3,threads=3,maxcpus=36 \
-numa node,cpus=0-8 -numa node,cpus=9-17 \
-numa node,cpus=18-26 -numa node,cpus=27-35
and the caller wants to hot-add all VCPUs in the last CPU socket (that
means: all the VCPUs in the last NUMA node, that means: CPU indexes
27-35). What should the caller do to find out which of the
/machine/icc-bridge/cpu[0..N] links/IDs really correspond to those
VCPUs?
>
> > +#
> > +# Returns: Nothing on success
> > +##
> > +{ 'command': 'cpu-add', 'data': {'id': 'int'} }
> > +
> > +##
> --
> Eduardo
>
--
Eduardo