Re: [PATCH v3 1/3] qapi: Moved architecture agnostic data types to `machine`

2023-11-02 Thread Markus Armbruster
Dinah B  writes:

> Hi,
>
> I noticed that qapi now has a machine-common category - do you think these
> changes would be more appropriate in that file
> rather than "machine" for the revision?

You're right.

We created machine-common.json for stuff needed by both machine.json and
machine-target.json.  The alternative was to have machine-target.json
include machine.json instead.  When we discussed which alternative to
pick, I didn't remember your patch adds the include.

Picking both makes no sense.  Please look into adding stuff in a way
that avoids the include.

Thanks for paying attention!

> Thanks and sorry for the delay,

I'm not in a hurry here :)




Re: [PATCH v3 1/3] qapi: Moved architecture agnostic data types to `machine`

2023-10-31 Thread Dinah B
Hi,

I noticed that qapi now has a machine-common category - do you think these
changes would be more appropriate in that file
rather than "machine" for the revision?

Thanks and sorry for the delay,
-Dinah

On Tue, Aug 1, 2023 at 9:09 AM Markus Armbruster  wrote:

> Dinah Baum  writes:
>
> > Signed-off-by: Dinah Baum 
> > ---
> >  qapi/machine-target.json | 78 +---
> >  qapi/machine.json| 77 +++
> >  2 files changed, 78 insertions(+), 77 deletions(-)
> >
> > diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> > index f0a6b72414..3ee2f7ca6b 100644
> > --- a/qapi/machine-target.json
> > +++ b/qapi/machine-target.json
> > @@ -4,83 +4,7 @@
> >  # This work is licensed under the terms of the GNU GPL, version 2 or
> later.
> >  # See the COPYING file in the top-level directory.
> >
> > -##
> > -# @CpuModelInfo:
> > -#
> > -# Virtual CPU model.
> > -#
> > -# A CPU model consists of the name of a CPU definition, to which delta
> > -# changes are applied (e.g. features added/removed). Most magic values
> > -# that an architecture might require should be hidden behind the name.
> > -# However, if required, architectures can expose relevant properties.
> > -#
> > -# @name: the name of the CPU definition the model is based on
> > -#
> > -# @props: a dictionary of QOM properties to be applied
> > -#
> > -# Since: 2.8
> > -##
> > -{ 'struct': 'CpuModelInfo',
> > -  'data': { 'name': 'str',
> > -'*props': 'any' } }
> > -
> > -##
> > -# @CpuModelExpansionType:
> > -#
> > -# An enumeration of CPU model expansion types.
> > -#
> > -# @static: Expand to a static CPU model, a combination of a static
> > -# base model name and property delta changes.  As the static base
> > -# model will never change, the expanded CPU model will be the
> > -# same, independent of QEMU version, machine type, machine
> > -# options, and accelerator options.  Therefore, the resulting
> > -# model can be used by tooling without having to specify a
> > -# compatibility machine - e.g. when displaying the "host" model.
> > -# The @static CPU models are migration-safe.
> > -#
> > -# @full: Expand all properties.  The produced model is not guaranteed
> > -# to be migration-safe, but allows tooling to get an insight and
> > -# work with model details.
> > -#
> > -# Note: When a non-migration-safe CPU model is expanded in static
> > -# mode, some features enabled by the CPU model may be omitted,
> > -# because they can't be implemented by a static CPU model
> > -# definition (e.g. cache info passthrough and PMU passthrough in
> > -# x86). If you need an accurate representation of the features
> > -# enabled by a non-migration-safe CPU model, use @full.  If you
> > -# need a static representation that will keep ABI compatibility
> > -# even when changing QEMU version or machine-type, use @static
> > -# (but keep in mind that some features may be omitted).
> > -#
> > -# Since: 2.8
> > -##
> > -{ 'enum': 'CpuModelExpansionType',
> > -  'data': [ 'static', 'full' ] }
> > -
> > -##
> > -# @CpuModelCompareResult:
> > -#
> > -# An enumeration of CPU model comparison results.  The result is
> > -# usually calculated using e.g. CPU features or CPU generations.
> > -#
> > -# @incompatible: If model A is incompatible to model B, model A is not
> > -# guaranteed to run where model B runs and the other way around.
> > -#
> > -# @identical: If model A is identical to model B, model A is
> > -# guaranteed to run where model B runs and the other way around.
> > -#
> > -# @superset: If model A is a superset of model B, model B is
> > -# guaranteed to run where model A runs.  There are no guarantees
> > -# about the other way.
> > -#
> > -# @subset: If model A is a subset of model B, model A is guaranteed to
> > -# run where model B runs.  There are no guarantees about the other
> > -# way.
> > -#
> > -# Since: 2.8
> > -##
> > -{ 'enum': 'CpuModelCompareResult',
> > -  'data': [ 'incompatible', 'identical', 'superset', 'subset' ] }
> > +{ 'include': 'machine.json' }
> >
> >  ##
> >  # @CpuModelBaselineInfo:
> > diff --git a/qapi/machine.json b/qapi/machine.json
> > index a08b6576ca..192c781310 100644
> > --- a/qapi/machine.json
> > +++ b/qapi/machine.json
> > @@ -1691,3 +1691,80 @@
> >  { 'command': 'dumpdtb',
> >'data': { 'filename': 'str' },
> >'if': 'CONFIG_FDT' }
> > +
> > +##
> > +# @CpuModelInfo:
> > +#
> > +# Virtual CPU model.
> > +#
> > +# A CPU model consists of the name of a CPU definition, to which delta
> > +# changes are applied (e.g. features added/removed). Most magic values
> > +# that an architecture might require should be hidden behind the name.
> > +# However, if required, architectures can expose relevant properties.
> > +#
> > +# @name: the name of the CPU definition the model is based on
> > +#
> > +# @props: a dictionary of QOM properties to 

Re: [PATCH v3 1/3] qapi: Moved architecture agnostic data types to `machine`

2023-08-01 Thread Markus Armbruster
Dinah Baum  writes:

> Signed-off-by: Dinah Baum 
> ---
>  qapi/machine-target.json | 78 +---
>  qapi/machine.json| 77 +++
>  2 files changed, 78 insertions(+), 77 deletions(-)
>
> diff --git a/qapi/machine-target.json b/qapi/machine-target.json
> index f0a6b72414..3ee2f7ca6b 100644
> --- a/qapi/machine-target.json
> +++ b/qapi/machine-target.json
> @@ -4,83 +4,7 @@
>  # This work is licensed under the terms of the GNU GPL, version 2 or later.
>  # See the COPYING file in the top-level directory.
>  
> -##
> -# @CpuModelInfo:
> -#
> -# Virtual CPU model.
> -#
> -# A CPU model consists of the name of a CPU definition, to which delta
> -# changes are applied (e.g. features added/removed). Most magic values
> -# that an architecture might require should be hidden behind the name.
> -# However, if required, architectures can expose relevant properties.
> -#
> -# @name: the name of the CPU definition the model is based on
> -#
> -# @props: a dictionary of QOM properties to be applied
> -#
> -# Since: 2.8
> -##
> -{ 'struct': 'CpuModelInfo',
> -  'data': { 'name': 'str',
> -'*props': 'any' } }
> -
> -##
> -# @CpuModelExpansionType:
> -#
> -# An enumeration of CPU model expansion types.
> -#
> -# @static: Expand to a static CPU model, a combination of a static
> -# base model name and property delta changes.  As the static base
> -# model will never change, the expanded CPU model will be the
> -# same, independent of QEMU version, machine type, machine
> -# options, and accelerator options.  Therefore, the resulting
> -# model can be used by tooling without having to specify a
> -# compatibility machine - e.g. when displaying the "host" model.
> -# The @static CPU models are migration-safe.
> -#
> -# @full: Expand all properties.  The produced model is not guaranteed
> -# to be migration-safe, but allows tooling to get an insight and
> -# work with model details.
> -#
> -# Note: When a non-migration-safe CPU model is expanded in static
> -# mode, some features enabled by the CPU model may be omitted,
> -# because they can't be implemented by a static CPU model
> -# definition (e.g. cache info passthrough and PMU passthrough in
> -# x86). If you need an accurate representation of the features
> -# enabled by a non-migration-safe CPU model, use @full.  If you
> -# need a static representation that will keep ABI compatibility
> -# even when changing QEMU version or machine-type, use @static
> -# (but keep in mind that some features may be omitted).
> -#
> -# Since: 2.8
> -##
> -{ 'enum': 'CpuModelExpansionType',
> -  'data': [ 'static', 'full' ] }
> -
> -##
> -# @CpuModelCompareResult:
> -#
> -# An enumeration of CPU model comparison results.  The result is
> -# usually calculated using e.g. CPU features or CPU generations.
> -#
> -# @incompatible: If model A is incompatible to model B, model A is not
> -# guaranteed to run where model B runs and the other way around.
> -#
> -# @identical: If model A is identical to model B, model A is
> -# guaranteed to run where model B runs and the other way around.
> -#
> -# @superset: If model A is a superset of model B, model B is
> -# guaranteed to run where model A runs.  There are no guarantees
> -# about the other way.
> -#
> -# @subset: If model A is a subset of model B, model A is guaranteed to
> -# run where model B runs.  There are no guarantees about the other
> -# way.
> -#
> -# Since: 2.8
> -##
> -{ 'enum': 'CpuModelCompareResult',
> -  'data': [ 'incompatible', 'identical', 'superset', 'subset' ] }
> +{ 'include': 'machine.json' }
>  
>  ##
>  # @CpuModelBaselineInfo:
> diff --git a/qapi/machine.json b/qapi/machine.json
> index a08b6576ca..192c781310 100644
> --- a/qapi/machine.json
> +++ b/qapi/machine.json
> @@ -1691,3 +1691,80 @@
>  { 'command': 'dumpdtb',
>'data': { 'filename': 'str' },
>'if': 'CONFIG_FDT' }
> +
> +##
> +# @CpuModelInfo:
> +#
> +# Virtual CPU model.
> +#
> +# A CPU model consists of the name of a CPU definition, to which delta
> +# changes are applied (e.g. features added/removed). Most magic values
> +# that an architecture might require should be hidden behind the name.
> +# However, if required, architectures can expose relevant properties.
> +#
> +# @name: the name of the CPU definition the model is based on
> +#
> +# @props: a dictionary of QOM properties to be applied
> +#
> +# Since: 2.8
> +##
> +{ 'struct': 'CpuModelInfo',
> +  'data': { 'name': 'str', '*props': 'any' } }
> +
> +##
> +# @CpuModelExpansionType:
> +#
> +# An enumeration of CPU model expansion types.
> +#
> +# @static: Expand to a static CPU model, a combination of a static
> +# base model name and property delta changes.  As the static base
> +# model will never change, the expanded CPU model will be the
> +# same, independent of QEMU version, machine type, machine
> +#  

Re: [PATCH v3 1/3] qapi: Moved architecture agnostic data types to `machine`

2023-07-31 Thread Philippe Mathieu-Daudé

On 30/7/23 08:40, Dinah Baum wrote:

Signed-off-by: Dinah Baum 
---
  qapi/machine-target.json | 78 +---
  qapi/machine.json| 77 +++
  2 files changed, 78 insertions(+), 77 deletions(-)


Reviewed-by: Philippe Mathieu-Daudé 




[PATCH v3 1/3] qapi: Moved architecture agnostic data types to `machine`

2023-07-30 Thread Dinah Baum
Signed-off-by: Dinah Baum 
---
 qapi/machine-target.json | 78 +---
 qapi/machine.json| 77 +++
 2 files changed, 78 insertions(+), 77 deletions(-)

diff --git a/qapi/machine-target.json b/qapi/machine-target.json
index f0a6b72414..3ee2f7ca6b 100644
--- a/qapi/machine-target.json
+++ b/qapi/machine-target.json
@@ -4,83 +4,7 @@
 # This work is licensed under the terms of the GNU GPL, version 2 or later.
 # See the COPYING file in the top-level directory.
 
-##
-# @CpuModelInfo:
-#
-# Virtual CPU model.
-#
-# A CPU model consists of the name of a CPU definition, to which delta
-# changes are applied (e.g. features added/removed). Most magic values
-# that an architecture might require should be hidden behind the name.
-# However, if required, architectures can expose relevant properties.
-#
-# @name: the name of the CPU definition the model is based on
-#
-# @props: a dictionary of QOM properties to be applied
-#
-# Since: 2.8
-##
-{ 'struct': 'CpuModelInfo',
-  'data': { 'name': 'str',
-'*props': 'any' } }
-
-##
-# @CpuModelExpansionType:
-#
-# An enumeration of CPU model expansion types.
-#
-# @static: Expand to a static CPU model, a combination of a static
-# base model name and property delta changes.  As the static base
-# model will never change, the expanded CPU model will be the
-# same, independent of QEMU version, machine type, machine
-# options, and accelerator options.  Therefore, the resulting
-# model can be used by tooling without having to specify a
-# compatibility machine - e.g. when displaying the "host" model.
-# The @static CPU models are migration-safe.
-#
-# @full: Expand all properties.  The produced model is not guaranteed
-# to be migration-safe, but allows tooling to get an insight and
-# work with model details.
-#
-# Note: When a non-migration-safe CPU model is expanded in static
-# mode, some features enabled by the CPU model may be omitted,
-# because they can't be implemented by a static CPU model
-# definition (e.g. cache info passthrough and PMU passthrough in
-# x86). If you need an accurate representation of the features
-# enabled by a non-migration-safe CPU model, use @full.  If you
-# need a static representation that will keep ABI compatibility
-# even when changing QEMU version or machine-type, use @static
-# (but keep in mind that some features may be omitted).
-#
-# Since: 2.8
-##
-{ 'enum': 'CpuModelExpansionType',
-  'data': [ 'static', 'full' ] }
-
-##
-# @CpuModelCompareResult:
-#
-# An enumeration of CPU model comparison results.  The result is
-# usually calculated using e.g. CPU features or CPU generations.
-#
-# @incompatible: If model A is incompatible to model B, model A is not
-# guaranteed to run where model B runs and the other way around.
-#
-# @identical: If model A is identical to model B, model A is
-# guaranteed to run where model B runs and the other way around.
-#
-# @superset: If model A is a superset of model B, model B is
-# guaranteed to run where model A runs.  There are no guarantees
-# about the other way.
-#
-# @subset: If model A is a subset of model B, model A is guaranteed to
-# run where model B runs.  There are no guarantees about the other
-# way.
-#
-# Since: 2.8
-##
-{ 'enum': 'CpuModelCompareResult',
-  'data': [ 'incompatible', 'identical', 'superset', 'subset' ] }
+{ 'include': 'machine.json' }
 
 ##
 # @CpuModelBaselineInfo:
diff --git a/qapi/machine.json b/qapi/machine.json
index a08b6576ca..192c781310 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -1691,3 +1691,80 @@
 { 'command': 'dumpdtb',
   'data': { 'filename': 'str' },
   'if': 'CONFIG_FDT' }
+
+##
+# @CpuModelInfo:
+#
+# Virtual CPU model.
+#
+# A CPU model consists of the name of a CPU definition, to which delta
+# changes are applied (e.g. features added/removed). Most magic values
+# that an architecture might require should be hidden behind the name.
+# However, if required, architectures can expose relevant properties.
+#
+# @name: the name of the CPU definition the model is based on
+#
+# @props: a dictionary of QOM properties to be applied
+#
+# Since: 2.8
+##
+{ 'struct': 'CpuModelInfo',
+  'data': { 'name': 'str', '*props': 'any' } }
+
+##
+# @CpuModelExpansionType:
+#
+# An enumeration of CPU model expansion types.
+#
+# @static: Expand to a static CPU model, a combination of a static
+# base model name and property delta changes.  As the static base
+# model will never change, the expanded CPU model will be the
+# same, independent of QEMU version, machine type, machine
+# options, and accelerator options.  Therefore, the resulting
+# model can be used by tooling without having to specify a
+# compatibility machine - e.g. when displaying the "host" model.
+# The @static CPU models are migration-safe.
+#
+# @full: Expand all properties.