On Fri, Apr 25, 2025 at 6:23 AM Philippe Mathieu-Daudé
<phi...@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é <phi...@linaro.org>
> Reviewed-by: Richard Henderson <richard.hender...@linaro.org>

Reviewed-by: Zhang Chen <zhangc...@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
>
>

Reply via email to