From: Zhao Liu <zhao1.liu@xxxxxxxxx> Set MachineClass.smp_props.possible_cpus_qom_granu and TopoClass.search_parent_pre_plug for i386. So far, the i386 topology is based on the QOM topology. Signed-off-by: Zhao Liu <zhao1.liu@xxxxxxxxx> --- hw/i386/x86.c | 1 + target/i386/cpu.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 595d4365fdd1..99f6c502de43 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -1565,6 +1565,7 @@ static void x86_machine_class_init(ObjectClass *oc, void *data) mc->cpu_index_to_instance_props = x86_cpu_index_to_props; mc->get_default_cpu_node_id = x86_get_default_cpu_node_id; mc->possible_cpu_arch_ids = x86_possible_cpu_arch_ids; + mc->smp_props.possible_cpus_qom_granu = CPU_TOPO_THREAD; x86mc->save_tsc_khz = true; x86mc->fwcfg_dma_enabled = true; nc->nmi_monitor_handler = x86_nmi; diff --git a/target/i386/cpu.c b/target/i386/cpu.c index cd16cb893daf..1de5726691e1 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -41,6 +41,7 @@ #include "exec/address-spaces.h" #include "hw/boards.h" #include "hw/i386/sgx-epc.h" +#include "hw/i386/x86.h" #endif #include "disas/capstone.h" @@ -8009,6 +8010,9 @@ static void x86_cpu_common_class_init(ObjectClass *oc, void *data) #if !defined(CONFIG_USER_ONLY) object_class_property_add(oc, "crash-information", "GuestPanicInformation", x86_cpu_get_crash_info_qom, NULL, NULL, NULL); + + CPU_TOPO_CLASS(oc)->search_parent_pre_plug = + x86_cpu_search_parent_pre_plug; #endif for (w = 0; w < FEATURE_WORDS; w++) { -- 2.34.1