Message ID | 20250424222112.36194-22-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | single-binary: Make hw/arm/ common | expand |
On Fri, Apr 25, 2025 at 6:23 AM Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > > Prefer MachineClass::get_default_cpu_type() over > MachineClass::default_cpu_type to get CPU type, > evaluating TCG availability at runtime calling > tcg_enabled(). > > It's worth noting that this is a behavior change: > > - Previously only > > ./configure --disable-tcg --enable-kvm > ./qemu-system-aarch64 -M virt -accel kvm > > would default to 'max' and > > ./configure --enable-tcg --enable-kvm > ./qemu-system-aarch64 -M virt -accel kvm > > would default to 'cortex-a15'. > > - Afterward, -accel kvm will always default to 'max'. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Zhang Chen <zhangckid@gmail.com> Thanks Chen > --- > hw/arm/virt.c | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 566afa4c978..b59cc90bd36 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -3127,6 +3127,12 @@ static int virt_hvf_get_physical_address_range(MachineState *ms) > return requested_ipa_size; > } > > +static const char *virt_get_default_cpu_type(const MachineState *ms) > +{ > + return tcg_enabled() ? ARM_CPU_TYPE_NAME("cortex-a15") > + : ARM_CPU_TYPE_NAME("max"); > +} > + > static GPtrArray *virt_get_valid_cpu_types(const MachineState *ms) > { > GPtrArray *vct = g_ptr_array_new_with_free_func(g_free); > @@ -3184,11 +3190,7 @@ static void virt_machine_class_init(ObjectClass *oc, const void *data) > mc->minimum_page_bits = 12; > mc->possible_cpu_arch_ids = virt_possible_cpu_arch_ids; > mc->cpu_index_to_instance_props = virt_cpu_index_to_props; > -#ifdef CONFIG_TCG > - mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a15"); > -#else > - mc->default_cpu_type = ARM_CPU_TYPE_NAME("max"); > -#endif > + mc->get_default_cpu_type = virt_get_default_cpu_type; > mc->get_valid_cpu_types = virt_get_valid_cpu_types; > mc->get_default_cpu_node_id = virt_get_default_cpu_node_id; > mc->kvm_type = virt_kvm_type; > -- > 2.47.1 > >
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 566afa4c978..b59cc90bd36 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -3127,6 +3127,12 @@ static int virt_hvf_get_physical_address_range(MachineState *ms) return requested_ipa_size; } +static const char *virt_get_default_cpu_type(const MachineState *ms) +{ + return tcg_enabled() ? ARM_CPU_TYPE_NAME("cortex-a15") + : ARM_CPU_TYPE_NAME("max"); +} + static GPtrArray *virt_get_valid_cpu_types(const MachineState *ms) { GPtrArray *vct = g_ptr_array_new_with_free_func(g_free); @@ -3184,11 +3190,7 @@ static void virt_machine_class_init(ObjectClass *oc, const void *data) mc->minimum_page_bits = 12; mc->possible_cpu_arch_ids = virt_possible_cpu_arch_ids; mc->cpu_index_to_instance_props = virt_cpu_index_to_props; -#ifdef CONFIG_TCG - mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a15"); -#else - mc->default_cpu_type = ARM_CPU_TYPE_NAME("max"); -#endif + mc->get_default_cpu_type = virt_get_default_cpu_type; mc->get_valid_cpu_types = virt_get_valid_cpu_types; mc->get_default_cpu_node_id = virt_get_default_cpu_node_id; mc->kvm_type = virt_kvm_type;