On Tue, 20 Jun 2023 18:39:55 +0800 Zhao Liu <zhao1....@linux.intel.com> wrote:
> 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); > +} I'd put those before/after machine_parse_smp_config , just declarations. And put definitions into hw/core/machine-smp.c again close to machine_parse_smp_config > + > extern GlobalProperty hw_compat_8_0[]; > extern const size_t hw_compat_8_0_len; >