Message ID | 20220628205513.81917-1-muriloo@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] target/ppc: Return default CPU for max CPU | expand |
On 28/06/2022 17:55, Murilo Opsfelder Araujo wrote: > All ppc CPUs represent hardware that exists in the real world, i.e.: we > do not have a "max" CPU with all possible emulated features enabled. > Return the default CPU type for the machine because that has greater > chance of being useful as the "max" CPU. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1038 > Cc: Cédric Le Goater <clg@kaod.org> > Cc: Daniel Henrique Barboza <danielhb413@gmail.com> > Cc: Daniel P. Berrangé <berrange@redhat.com> > Cc: Greg Kurz <groug@kaod.org> > Cc: Matheus K. Ferst <matheus.ferst@eldorado.org.br> > Cc: Thomas Huth <thuth@redhat.com> > Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> > Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> > --- > v2: > - Return the default CPU of the machine instead of hard-coded alias. > > v1: https://lore.kernel.org/qemu-devel/20220531172711.94564-1-muriloo@linux.ibm.com/ > > target/ppc/cpu-models.c | 1 - > target/ppc/cpu_init.c | 19 +++++++++++++++++++ > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c > index 976be5e0d1..05589eb21d 100644 > --- a/target/ppc/cpu-models.c > +++ b/target/ppc/cpu-models.c > @@ -879,7 +879,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { > { "755", "755_v2.8" }, > { "goldfinger", "755_v2.8" }, > { "7400", "7400_v2.9" }, > - { "max", "7400_v2.9" }, > { "g4", "7400_v2.9" }, > { "7410", "7410_v1.4" }, > { "nitro", "7410_v1.4" }, > diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c > index c16cb8dbe7..8ee0b7c785 100644 > --- a/target/ppc/cpu_init.c > +++ b/target/ppc/cpu_init.c > @@ -47,6 +47,10 @@ > #include "spr_common.h" > #include "power8-pmu.h" > > +#ifndef CONFIG_USER_ONLY > +#include "hw/boards.h" > +#endif > + > /* #define PPC_DEBUG_SPR */ > /* #define USE_APPLE_GDB */ > > @@ -6963,6 +6967,21 @@ static ObjectClass *ppc_cpu_class_by_name(const char *name) > } > } > > + /* > + * All ppc CPUs represent hardware that exists in the real world, i.e.: we > + * do not have a "max" CPU with all possible emulated features enabled. > + * Return the default CPU type for the machine because that has greater > + * chance of being useful as the "max" CPU. > + */ > +#if !defined(CONFIG_USER_ONLY) > + if (strcmp(name, "max") == 0) { > + MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); > + if (mc) { > + return object_class_by_name(mc->default_cpu_type); > + } > + } > +#endif > + > cpu_model = g_ascii_strdown(name, -1); > p = ppc_cpu_lookup_alias(cpu_model); > if (p) { > -- > 2.36.1 > > Reviewed-by: Víctor Colombo <victor.colombo@eldorado.org.br> Best regards,
On 6/28/22 17:55, Murilo Opsfelder Araujo wrote: > All ppc CPUs represent hardware that exists in the real world, i.e.: we > do not have a "max" CPU with all possible emulated features enabled. > Return the default CPU type for the machine because that has greater > chance of being useful as the "max" CPU. > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1038 > Cc: Cédric Le Goater <clg@kaod.org> > Cc: Daniel Henrique Barboza <danielhb413@gmail.com> > Cc: Daniel P. Berrangé <berrange@redhat.com> > Cc: Greg Kurz <groug@kaod.org> > Cc: Matheus K. Ferst <matheus.ferst@eldorado.org.br> > Cc: Thomas Huth <thuth@redhat.com> > Signed-off-by: Murilo Opsfelder Araujo <muriloo@linux.ibm.com> > Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com> > --- Queued in gitlab.com/danielhb/qemu/tree/ppc-next. Thanks, Daniel > v2: > - Return the default CPU of the machine instead of hard-coded alias. > > v1: https://lore.kernel.org/qemu-devel/20220531172711.94564-1-muriloo@linux.ibm.com/ > > target/ppc/cpu-models.c | 1 - > target/ppc/cpu_init.c | 19 +++++++++++++++++++ > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c > index 976be5e0d1..05589eb21d 100644 > --- a/target/ppc/cpu-models.c > +++ b/target/ppc/cpu-models.c > @@ -879,7 +879,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { > { "755", "755_v2.8" }, > { "goldfinger", "755_v2.8" }, > { "7400", "7400_v2.9" }, > - { "max", "7400_v2.9" }, > { "g4", "7400_v2.9" }, > { "7410", "7410_v1.4" }, > { "nitro", "7410_v1.4" }, > diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c > index c16cb8dbe7..8ee0b7c785 100644 > --- a/target/ppc/cpu_init.c > +++ b/target/ppc/cpu_init.c > @@ -47,6 +47,10 @@ > #include "spr_common.h" > #include "power8-pmu.h" > > +#ifndef CONFIG_USER_ONLY > +#include "hw/boards.h" > +#endif > + > /* #define PPC_DEBUG_SPR */ > /* #define USE_APPLE_GDB */ > > @@ -6963,6 +6967,21 @@ static ObjectClass *ppc_cpu_class_by_name(const char *name) > } > } > > + /* > + * All ppc CPUs represent hardware that exists in the real world, i.e.: we > + * do not have a "max" CPU with all possible emulated features enabled. > + * Return the default CPU type for the machine because that has greater > + * chance of being useful as the "max" CPU. > + */ > +#if !defined(CONFIG_USER_ONLY) > + if (strcmp(name, "max") == 0) { > + MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); > + if (mc) { > + return object_class_by_name(mc->default_cpu_type); > + } > + } > +#endif > + > cpu_model = g_ascii_strdown(name, -1); > p = ppc_cpu_lookup_alias(cpu_model); > if (p) {
diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c index 976be5e0d1..05589eb21d 100644 --- a/target/ppc/cpu-models.c +++ b/target/ppc/cpu-models.c @@ -879,7 +879,6 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { { "755", "755_v2.8" }, { "goldfinger", "755_v2.8" }, { "7400", "7400_v2.9" }, - { "max", "7400_v2.9" }, { "g4", "7400_v2.9" }, { "7410", "7410_v1.4" }, { "nitro", "7410_v1.4" }, diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c index c16cb8dbe7..8ee0b7c785 100644 --- a/target/ppc/cpu_init.c +++ b/target/ppc/cpu_init.c @@ -47,6 +47,10 @@ #include "spr_common.h" #include "power8-pmu.h" +#ifndef CONFIG_USER_ONLY +#include "hw/boards.h" +#endif + /* #define PPC_DEBUG_SPR */ /* #define USE_APPLE_GDB */ @@ -6963,6 +6967,21 @@ static ObjectClass *ppc_cpu_class_by_name(const char *name) } } + /* + * All ppc CPUs represent hardware that exists in the real world, i.e.: we + * do not have a "max" CPU with all possible emulated features enabled. + * Return the default CPU type for the machine because that has greater + * chance of being useful as the "max" CPU. + */ +#if !defined(CONFIG_USER_ONLY) + if (strcmp(name, "max") == 0) { + MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine()); + if (mc) { + return object_class_by_name(mc->default_cpu_type); + } + } +#endif + cpu_model = g_ascii_strdown(name, -1); p = ppc_cpu_lookup_alias(cpu_model); if (p) {