qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 11/12 v2] qmp: add cpu-set qmp command


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH 11/12 v2] qmp: add cpu-set qmp command
Date: Mon, 25 Mar 2013 14:22:36 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

On 03/25/2013 02:09 PM, Luiz Capitulino wrote:
> On Mon, 25 Mar 2013 16:35:11 +0100
> Igor Mammedov <address@hidden> wrote:
> 

>> +void qmp_cpu_set(int64_t id, const bool online, Error **errp)
>> +{
>> +    if (online) {
>> +        do_cpu_hot_add(id, errp);
>> +    } else {
>> +        error_setg(errp, "Unplug is not implemented");
>> +    }
>> +}
> 
> As a general rule, we don't allow command extensions to be done this
> way because this is not queriable. A client would have to try online=off
> to see if QEMU version X supports it, worse: the client would have to
> parse the error message to be sure the failure actually corresponds
> to unplug not implemented.
> 
> The alternative is to have cpu-set-online and later cpu-set-offline. Quite
> verbose, but doesn't have issues.
> 
> Eric, what do you think?

Good point.  What is the likelihood of getting offline working before
1.5 is released?  If we are certain that offline cpu support won't make
this release, then having separate commands would indeed be easier to query.

On the other hand, why aren't we mirroring the QMP behavior to be
similar to what Lazlo already did for qga:
https://lists.gnu.org/archive/html/qemu-devel/2013-03/msg01031.html

That is, by having a way to query details on the set of all possible
cpus (via a new command that returns an array with max cpus elements,
rather than just the single int of query-cpu-max in
https://lists.gnu.org/archive/html/qemu-devel/2013-03/msg04441.html),
with information in that query including a second boolean stating
whether that cpu can be taken offline, would be sufficiently queryable.
 The initial implementation would then state that an offline cpu can be
taken online, but that an online cpu must remain in that state.

And while typing that, I also realize that I like Lazlo's approach for
another reason - guest-set-vcpus takes an array of actions, and performs
as many as possible in one transaction; whereas your current cpu-set
command has to be called multiple times to take multiple cpus online.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]