[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;