[PATCH] target/ppc: Remove "compat" property of server class POWER CPUs

David Gibson david at gibson.dropbear.id.au
Wed Dec 2 03:16:42 UTC 2020


On Tue, Dec 01, 2020 at 02:11:03PM +0100, Greg Kurz wrote:
> This property has been deprecated since QEMU 5.0 by commit 22062e54bb68.
> We only kept a legacy hack that internally converts "compat" into the
> official "max-cpu-compat" property of the pseries machine type.
> 
> According to our deprecation policy, we could have removed it for QEMU 5.2
> already. Do it now ; since ppc_cpu_parse_featurestr() now just calls the
> generic parent_parse_features handler, drop it as well.
> 
> Users are supposed to use the "max-cpu-compat" property of the pseries
> machine type instead.

Applied, thanks.

> 
> Signed-off-by: Greg Kurz <groug at kaod.org>
> ---
>  docs/system/deprecated.rst      |  7 ----
>  target/ppc/translate_init.c.inc | 59 ---------------------------------
>  2 files changed, 66 deletions(-)
> 
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 565389697e84..09c8f380bc82 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -281,13 +281,6 @@ a future version of QEMU. It's unclear whether anybody is still using
>  CPU emulation in QEMU, and there are no test images available to make
>  sure that the code is still working.
>  
> -``compat`` property of server class POWER CPUs (since 5.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -The ``compat`` property used to set backwards compatibility modes for
> -the processor has been deprecated. The ``max-cpu-compat`` property of
> -the ``pseries`` machine type should be used instead.
> -
>  ``lm32`` CPUs (since 5.2.0)
>  '''''''''''''''''''''''''''
>  
> diff --git a/target/ppc/translate_init.c.inc b/target/ppc/translate_init.c.inc
> index 78cc8f043b92..e4082cfde746 100644
> --- a/target/ppc/translate_init.c.inc
> +++ b/target/ppc/translate_init.c.inc
> @@ -10470,63 +10470,6 @@ static ObjectClass *ppc_cpu_class_by_name(const char *name)
>      return oc;
>  }
>  
> -static void ppc_cpu_parse_featurestr(const char *type, char *features,
> -                                     Error **errp)
> -{
> -    Object *machine = qdev_get_machine();
> -    const PowerPCCPUClass *pcc = POWERPC_CPU_CLASS(object_class_by_name(type));
> -
> -    if (!features) {
> -        return;
> -    }
> -
> -    if (object_property_find(machine, "max-cpu-compat")) {
> -        int i;
> -        char **inpieces;
> -        char *s = features;
> -        Error *local_err = NULL;
> -        char *compat_str = NULL;
> -
> -        /*
> -         * Backwards compatibility hack:
> -         *
> -         *   CPUs had a "compat=" property which didn't make sense for
> -         *   anything except pseries.  It was replaced by "max-cpu-compat"
> -         *   machine option.  This supports old command lines like
> -         *       -cpu POWER8,compat=power7
> -         *   By stripping the compat option and applying it to the machine
> -         *   before passing it on to the cpu level parser.
> -         */
> -        inpieces = g_strsplit(features, ",", 0);
> -        *s = '\0';
> -        for (i = 0; inpieces[i]; i++) {
> -            if (g_str_has_prefix(inpieces[i], "compat=")) {
> -                warn_report_once("CPU 'compat' property is deprecated; "
> -                    "use max-cpu-compat machine property instead");
> -                compat_str = inpieces[i];
> -                continue;
> -            }
> -            if ((i != 0) && (s != features)) {
> -                s = g_stpcpy(s, ",");
> -            }
> -            s = g_stpcpy(s, inpieces[i]);
> -        }
> -
> -        if (compat_str) {
> -            char *v = compat_str + strlen("compat=");
> -            object_property_set_str(machine, "max-cpu-compat", v, &local_err);
> -        }
> -        g_strfreev(inpieces);
> -        if (local_err) {
> -            error_propagate(errp, local_err);
> -            return;
> -        }
> -    }
> -
> -    /* do property processing with generic handler */
> -    pcc->parent_parse_features(type, features, errp);
> -}
> -
>  PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc)
>  {
>      ObjectClass *oc = OBJECT_CLASS(pcc);
> @@ -10905,8 +10848,6 @@ static void ppc_cpu_class_init(ObjectClass *oc, void *data)
>      device_class_set_parent_reset(dc, ppc_cpu_reset, &pcc->parent_reset);
>  
>      cc->class_by_name = ppc_cpu_class_by_name;
> -    pcc->parent_parse_features = cc->parse_features;
> -    cc->parse_features = ppc_cpu_parse_featurestr;
>      cc->has_work = ppc_cpu_has_work;
>      cc->do_interrupt = ppc_cpu_do_interrupt;
>      cc->cpu_exec_interrupt = ppc_cpu_exec_interrupt;

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20201202/5e03f8ee/attachment-0001.sig>


More information about the libvir-list mailing list