From: Zhao Liu <zhao1....@intel.com> The number of cores/threads per socket are needed for smbios, and are also useful for other modules.
Provide the helpers to wrap the calculation of cores/threads per socket so that we can avoid calculation errors caused by other modules miss topology changes. Suggested-by: Igor Mammedov <imamm...@redhat.com> Signed-off-by: Zhao Liu <zhao1....@intel.com> --- v3: * The new patch to wrap the calculation of cores/threads per socket. --- include/hw/boards.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/hw/boards.h b/include/hw/boards.h index a385010909d5..40ee22fd93e3 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -384,6 +384,18 @@ struct MachineState { } \ type_init(machine_initfn##_register_types) +static inline +unsigned int machine_topo_get_cores_per_socket(const MachineState *ms) +{ + return ms->smp.cores * ms->smp.clusters * ms->smp.dies; +} + +static inline +unsigned int machine_topo_get_threads_per_socket(const MachineState *ms) +{ + return ms->smp.threads * machine_topo_get_cores_per_socket(ms); +} + extern GlobalProperty hw_compat_8_0[]; extern const size_t hw_compat_8_0_len; -- 2.34.1