On Tue, May 10, 2016 at 10:23:16 +0200, Markus Armbruster wrote:
Eduardo Habkost <ehabkost(a)redhat.com> writes:
> On Mon, May 09, 2016 at 09:20:15AM -0600, Eric Blake wrote:
>> On 05/06/2016 12:11 PM, Eduardo Habkost wrote:
>> > Extend query-cpu-definitions schema to allow it to return two new
>> > optional fields: "runnable" and
"unavailable-features".
>> > "runnable" will tell if the CPU model can be run in the current
>> > host. "unavailable-features" will contain a list of CPU
>> > properties that are preventing the CPU model from running in the
>> > current host.
>> >
>> > Cc: David Hildenbrand <dahi(a)linux.vnet.ibm.com>
>> > Cc: Michael Mueller <mimu(a)linux.vnet.ibm.com>
>> > Cc: Christian Borntraeger <borntraeger(a)de.ibm.com>
>> > Cc: Cornelia Huck <cornelia.huck(a)de.ibm.com>
>> > Cc: Jiri Denemark <jdenemar(a)redhat.com>
>> > Cc: libvir-list(a)redhat.com
>> > Signed-off-by: Eduardo Habkost <ehabkost(a)redhat.com>
>> > ---
>> > qapi-schema.json | 10 +++++++++-
>> > 1 file changed, 9 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/qapi-schema.json b/qapi-schema.json
>> > index 54634c4..450e6e7 100644
>> > --- a/qapi-schema.json
>> > +++ b/qapi-schema.json
>> > @@ -2948,11 +2948,19 @@
>> > # Virtual CPU definition.
>> > #
>> > # @name: the name of the CPU definition
>> > +# @runnable: true if the CPU model is runnable using the current
>> > +# machine and accelerator. Optional. Since 2.6.
>>
>> You've missed 2.6. Also, the typical spelling for a per-member
>> designation is '(since 2.7)', not 'Since 2.7'
>
> Oops! I meant 2.7, and I didn't notice that it was not using the
> typical format. I will fix it, thanks.
>
>>
>> Why is it optional? Would it hurt to always be present in qemu new
>> enough to understand why it is needed?
>
> It is optional because not all architectures will return the
> field. This series implements it only for x86.
Its documentation seems to suggest missing runnable has the same meaning
as runnable: false. Is that correct?
I think it would be a bug if missing runnable had the same meaning as
runnable=false. To maintain backward compatibility with older QEMU
missing runnable should mean the CPU may or may not be runnable, i.e.,
we don't know which and the user has to try to figure it out.
Jirka