hw/arm/virt: Get default CPU type at runtime
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> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Acked-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20251021210144.58108-5-philmd@linaro.org>
This commit is contained in:
parent
ebb643764b
commit
e22ad85abd
1 changed files with 7 additions and 5 deletions
|
|
@ -3257,6 +3257,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);
|
||||
|
|
@ -3312,11 +3318,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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue