From: Dov Murik <dovmurik@xxxxxxxxxxxxxxxxxx> On x86 machines, when initializing the CPUState structs, set the mirror_vcpu flag to true for mirror vcpus. Signed-off-by: Dov Murik <dovmurik@xxxxxxxxxxxxxxxxxx> Co-developed-by: Ashish Kalra <ashish.kalra@xxxxxxx> Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx> --- hw/i386/x86.c | 9 +++++++-- include/hw/i386/x86.h | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index a0103cb0aa..67e2b331fc 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -101,13 +101,17 @@ uint32_t x86_cpu_apic_id_from_index(X86MachineState *x86ms, } -void x86_cpu_new(X86MachineState *x86ms, int64_t apic_id, Error **errp) +void x86_cpu_new(X86MachineState *x86ms, int64_t apic_id, bool mirror_vcpu, + Error **errp) { Object *cpu = object_new(MACHINE(x86ms)->cpu_type); if (!object_property_set_uint(cpu, "apic-id", apic_id, errp)) { goto out; } + if (!object_property_set_bool(cpu, "mirror_vcpu", mirror_vcpu, errp)) { + goto out; + } qdev_realize(DEVICE(cpu), NULL, errp); out: @@ -135,7 +139,8 @@ void x86_cpus_init(X86MachineState *x86ms, int default_cpu_version) ms->smp.max_cpus - 1) + 1; possible_cpus = mc->possible_cpu_arch_ids(ms); for (i = 0; i < ms->smp.cpus; i++) { - x86_cpu_new(x86ms, possible_cpus->cpus[i].arch_id, &error_fatal); + x86_cpu_new(x86ms, possible_cpus->cpus[i].arch_id, + possible_cpus->cpus[i].mirror_vcpu, &error_fatal); } } diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h index 6e9244a82c..9206826c36 100644 --- a/include/hw/i386/x86.h +++ b/include/hw/i386/x86.h @@ -96,7 +96,8 @@ void init_topo_info(X86CPUTopoInfo *topo_info, const X86MachineState *x86ms); uint32_t x86_cpu_apic_id_from_index(X86MachineState *pcms, unsigned int cpu_index); -void x86_cpu_new(X86MachineState *pcms, int64_t apic_id, Error **errp); +void x86_cpu_new(X86MachineState *pcms, int64_t apic_id, bool mirror_vcpu, + Error **errp); void x86_cpus_init(X86MachineState *pcms, int default_cpu_version); CpuInstanceProperties x86_cpu_index_to_props(MachineState *ms, unsigned cpu_index); -- 2.17.1