On Tue, Oct 30, 2018 at 12:13:45PM +0100, Gerd Hoffmann wrote:
> Indicates support state for somerhing (device, backend, subsystem, ...)
> in qemu.  Modeled roughly after the "S:" states we have in MAINTANERS.
> 

Personally, I would prefer to start with a very simple data model
(e.g. a 'deprecated' boolean flag), instead of trying to model
every possibility in the first version.

With a detailed maintenance status flag, the meaning of the
values would be confusing for somebody using a downstream
distribution of QEMU.  Would it reflect upstream maintenance
status, or downstream vendor guarantees about support?  Would
downstream vendors be required to patch QEMU to update
DeviceClass::supported on every device they ship?  I think this
would cause confusion and require extra work for every downstream
vendor, and not solve any real world problems.

A 'deprecated' flag could still require extra work, but only in a
few specific cases: deprecated devices are the exception, not the
rule, and downstream vendors would only need to touch device code
if their deprecation status is different from upstream.


> Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
> ---
[...]
> +
> +##
> +# @SupportState:
> +#
> +# Indicate Support level of qemu devices, backends, subsystems, ...

If we're following that path, I would like to get each possible
value for this enum to be clearly documented.  Especially
considering that this don't match the list on MAINTAINERS
exactly.

For example, I don't understand the difference between "obsolete"
and "deprecated".

> +#
> +# Since: 3.2
> +##
> +{ 'enum': 'SupportState',
> +  'data': [ 'unknown',
> +            'supported',
> +            'maintained',
> +            'odd-fixes',
> +            'orphan',
> +            'obsolete',
> +            'deprecated' ] }
> diff --git a/util/Makefile.objs b/util/Makefile.objs
> index 0820923c18..6e5f8faf82 100644
> --- a/util/Makefile.objs
> +++ b/util/Makefile.objs
> @@ -50,5 +50,6 @@ util-obj-y += range.o
>  util-obj-y += stats64.o
>  util-obj-y += systemd.o
>  util-obj-y += iova-tree.o
> +util-obj-y += support-state.o
>  util-obj-$(CONFIG_LINUX) += vfio-helpers.o
>  util-obj-$(CONFIG_OPENGL) += drm.o
> -- 
> 2.9.3
> 

-- 
Eduardo

Reply via email to