diff options
author | Zhao Liu <zhao1.liu@intel.com> | 2024-04-24 23:49:21 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2024-05-22 19:43:29 +0200 |
commit | 3568adc995b3906b5cc134753a829363f08bf6e1 (patch) | |
tree | e62c2596100a5d8f61c5cfd981b1e5c1555a7fab /hw | |
parent | 81c392ab5c7489955d7e2b515b7186a4cd174c71 (diff) | |
download | qemu-3568adc995b3906b5cc134753a829363f08bf6e1.zip qemu-3568adc995b3906b5cc134753a829363f08bf6e1.tar.gz qemu-3568adc995b3906b5cc134753a829363f08bf6e1.tar.bz2 |
i386: Support modules_per_die in X86CPUTopoInfo
Support module level in i386 cpu topology structure "X86CPUTopoInfo".
Since x86 does not yet support the "modules" parameter in "-smp",
X86CPUTopoInfo.modules_per_die is currently always 1.
Therefore, the module level width in APIC ID, which can be calculated by
"apicid_bitwidth_for_count(topo_info->modules_per_die)", is always 0 for
now, so we can directly add APIC ID related helpers to support module
level parsing.
In addition, update topology structure in test-x86-topo.c.
Tested-by: Yongwei Ma <yongwei.ma@intel.com>
Co-developed-by: Zhuocheng Ding <zhuocheng.ding@intel.com>
Signed-off-by: Zhuocheng Ding <zhuocheng.ding@intel.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Tested-by: Babu Moger <babu.moger@amd.com>
Message-ID: <20240424154929.1487382-14-zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/i386/x86.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/hw/i386/x86.c b/hw/i386/x86.c index 0b5cc59..d5d668e 100644 --- a/hw/i386/x86.c +++ b/hw/i386/x86.c @@ -45,7 +45,14 @@ void init_topo_info(X86CPUTopoInfo *topo_info, MachineState *ms = MACHINE(x86ms); topo_info->dies_per_pkg = ms->smp.dies; - topo_info->cores_per_die = ms->smp.cores; + /* + * Though smp.modules means the number of modules in one cluster, + * i386 doesn't support cluster level so that the smp.clusters + * always defaults to 1, therefore using smp.modules directly is + * fine here. + */ + topo_info->modules_per_die = ms->smp.modules; + topo_info->cores_per_module = ms->smp.cores; topo_info->threads_per_core = ms->smp.threads; } |