@@ -305,6 +305,7 @@ void x86_cpu_pre_plug(HotplugHandler *hotplug_dev,
init_topo_info(&topo_info, x86ms);
env->nr_dies = ms->smp.dies;
+ env->nr_modules = ms->smp.clusters;
/*
* If APIC ID is not set,
@@ -6781,6 +6781,7 @@ static void x86_cpu_initfn(Object *obj)
CPUX86State *env = &cpu->env;
env->nr_dies = 1;
+ env->nr_modules = 1;
cpu_set_cpustate_pointers(cpu);
object_property_add(obj, "feature-words", "X86CPUFeatureWordInfo",
@@ -1810,7 +1810,13 @@ typedef struct CPUArchState {
TPRAccess tpr_access_type;
+ /* Number of dies per package. */
unsigned nr_dies;
+ /*
+ * Number of modules per die. Module level in x86 cpu topology is
+ * corresponding to smp.clusters.
+ */
+ unsigned nr_modules;
} CPUX86State;
struct kvm_msrs;