On Wed, Jun 22, 2016 at 11:00:47AM +0200, Markus Armbruster wrote: > Eduardo Habkost <ehabkost@xxxxxxxxxx> writes: > > > 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@xxxxxxxxxxxxxxxxxx> > > Cc: Michael Mueller <mimu@xxxxxxxxxxxxxxxxxx> > > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> > > Cc: Cornelia Huck <cornelia.huck@xxxxxxxxxx> > > Cc: Jiri Denemark <jdenemar@xxxxxxxxxx> > > Cc: libvir-list@xxxxxxxxxx > > Signed-off-by: Eduardo Habkost <ehabkost@xxxxxxxxxx> > > --- > > Changes v1 -> v2: > > * Remove @runnable field, non-empty @unavailable-features is > > enough to report CPU model as not runnable. > > * Documentation updates: > > * Changed to "(since 2.7)"; > > * Add more details about the exact meaning of > > unavailable-features, and what it would mean to see > > read-only QOM properties in the list, and that > > implementations can return "type" if there's > > no extra information available; > > --- > > qapi-schema.json | 23 ++++++++++++++++++++++- > > 1 file changed, 22 insertions(+), 1 deletion(-) > > > > diff --git a/qapi-schema.json b/qapi-schema.json > > index 8483bdf..43478e9 100644 > > --- a/qapi-schema.json > > +++ b/qapi-schema.json > > @@ -3005,11 +3005,32 @@ > > # Virtual CPU definition. > > # > > # @name: the name of the CPU definition > > +# @unavailable-features: #optional List of properties that prevent > > +# the CPU model from running in the current > > +# host. (since 2.7) > > +# > > +# @unavailable-features is a list of QOM property names that > > +# represent CPU model attributes that prevent the CPU from running. > > +# If the QOM property is read-only, that means there's no known > > +# way to make the CPU model run in the current host. If > > +# absolutely no extra information will be returned to explain why > > Suggest "can be returned". I believe that "extra information can be returned" will always be true (we just need an appropriate property name to represent that information). But people writing architecture-specific code are free to decide if the extra effort is worth it, or if "type" is good enough for them. > > > +# the CPU model is not runnable, implementations may simply > > +# return "type" as the property name. > > +# If the property is read-write, it means that it MAY be possible > > +# to run the CPU model in the current host if that property is > > +# changed. Management software can use it as hints to suggest or > > +# choose an alternative for the user, or just to generate meaningful > > +# error messages explaining why the CPU model can't be used. > > +# If @unavailable-features is an empty list, the CPU model is > > +# runnable using the current host and machine-type. > > +# If @unavailable-features is not present, runnability > > +# information for the CPU is not available. > > # > > # Since: 1.2.0 > > ## > > { 'struct': 'CpuDefinitionInfo', > > - 'data': { 'name': 'str' } } > > + 'data': { 'name': 'str', > > + '*unavailable-features': [ 'str' ] } } > > > > ## > > # @query-cpu-definitions: > > With the commit message tidied up as per your reply to Jiri: > Reviewed-by: Markus Armbruster <armbru@xxxxxxxxxx> Thanks! -- Eduardo -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list