qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Greg Kurz
Subject: Re: [PATCH] target/ppc: Remove "compat" property of server class POWER CPUs
Date: Tue, 1 Dec 2020 14:35:21 +0100

Just to clarify, this is for 6.0.

On Tue, 1 Dec 2020 14:11:03 +0100
Greg Kurz <groug@kaod.org> 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.
> 
> Signed-off-by: Greg Kurz <groug@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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]