diff mbox

[v3,4/5] qmp: Add runnability information to query-cpu-definitions

Message ID 1474314175-24374-5-git-send-email-ehabkost@redhat.com
State New
Headers show

Commit Message

Eduardo Habkost Sept. 19, 2016, 7:42 p.m. UTC
Add a new optional field to query-cpu-definitions schema:
"unavailable-features". It will contain a list of QOM properties
that prevent the CPU model from running in the current host.

Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: Michael Mueller <mimu@linux.vnet.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Jiri Denemark <jdenemar@redhat.com>
Cc: libvir-list@redhat.com
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
Changes v2 -> v3:
* Small documentation reword
  * Suggested-by: Markus Armbruster <armbru@redhat.com>

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(-)

Comments

Eric Blake Sept. 20, 2016, 6:25 p.m. UTC | #1
On 09/19/2016 02:42 PM, Eduardo Habkost wrote:
> Add a new optional field to query-cpu-definitions schema:
> "unavailable-features". It will contain a list of QOM properties
> that prevent the CPU model from running in the current host.
> 
> Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>
> Cc: Michael Mueller <mimu@linux.vnet.ibm.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
> Cc: Jiri Denemark <jdenemar@redhat.com>
> Cc: libvir-list@redhat.com
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---

> +++ b/qapi-schema.json
> @@ -3111,10 +3111,31 @@
>  #          QEMU version, machine type, machine options and accelerator options.
>  #          A static model is always migration-safe. (since 2.8)
>  #
> +# @unavailable-features: #optional List of properties that prevent
> +#                        the CPU model from running in the current
> +#                        host. (since 2.7)

We've missed 2.7; this should probably be 2.8.  Otherwise reads okay to me;

Reviewed-by: Eric Blake <eblake@redhat.com>
Eduardo Habkost Sept. 20, 2016, 7:05 p.m. UTC | #2
On Tue, Sep 20, 2016 at 01:25:06PM -0500, Eric Blake wrote:
> On 09/19/2016 02:42 PM, Eduardo Habkost wrote:
> > Add a new optional field to query-cpu-definitions schema:
> > "unavailable-features". It will contain a list of QOM properties
> > that prevent the CPU model from running in the current host.
> > 
> > Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>
> > Cc: Michael Mueller <mimu@linux.vnet.ibm.com>
> > Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> > Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
> > Cc: Jiri Denemark <jdenemar@redhat.com>
> > Cc: libvir-list@redhat.com
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> > ---
> 
> > +++ b/qapi-schema.json
> > @@ -3111,10 +3111,31 @@
> >  #          QEMU version, machine type, machine options and accelerator options.
> >  #          A static model is always migration-safe. (since 2.8)
> >  #
> > +# @unavailable-features: #optional List of properties that prevent
> > +#                        the CPU model from running in the current
> > +#                        host. (since 2.7)
> 
> We've missed 2.7; this should probably be 2.8.  Otherwise reads okay to me;
> 
> Reviewed-by: Eric Blake <eblake@redhat.com>

Oops! I will fix it before merging. Thanks for spotting!
diff mbox

Patch

diff --git a/qapi-schema.json b/qapi-schema.json
index e507061..057c63d 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3111,10 +3111,31 @@ 
 #          QEMU version, machine type, machine options and accelerator options.
 #          A static model is always migration-safe. (since 2.8)
 #
+# @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. Implementations
+# that choose not to provide specific information return the
+# property name "type".
+# 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', '*migration-safe': 'bool', 'static': 'bool' } }
+  'data': { 'name': 'str', '*migration-safe': 'bool', 'static': 'bool',
+            '*unavailable-features': [ 'str' ] } }
 
 ##
 # @query-cpu-definitions: