diff mbox series

[v3,1/4] machine: Add helpers to get cores/threads per socket

Message ID 20230620103958.3907565-2-zhao1.liu@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series hw/smbios: Cleanup topology related variables | expand

Commit Message

Zhao Liu June 20, 2023, 10:39 a.m. UTC
From: Zhao Liu <zhao1.liu@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 <imammedo@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@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(+)

Comments

Igor Mammedov June 26, 2023, 1:43 p.m. UTC | #1
On Tue, 20 Jun 2023 18:39:55 +0800
Zhao Liu <zhao1.liu@linux.intel.com> wrote:

> From: Zhao Liu <zhao1.liu@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 <imammedo@redhat.com>
> Signed-off-by: Zhao Liu <zhao1.liu@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;
>
Zhao Liu June 28, 2023, 2:20 a.m. UTC | #2
On Mon, Jun 26, 2023 at 03:43:25PM +0200, Igor Mammedov wrote:
> Date: Mon, 26 Jun 2023 15:43:25 +0200
> From: Igor Mammedov <imammedo@redhat.com>
> Subject: Re: [PATCH v3 1/4] machine: Add helpers to get cores/threads per
>  socket
> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-redhat-linux-gnu)
> 
> On Tue, 20 Jun 2023 18:39:55 +0800
> Zhao Liu <zhao1.liu@linux.intel.com> wrote:
> 
> > From: Zhao Liu <zhao1.liu@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 <imammedo@redhat.com>
> > Signed-off-by: Zhao Liu <zhao1.liu@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

Okay, thanks!

> 
> > +
> >  extern GlobalProperty hw_compat_8_0[];
> >  extern const size_t hw_compat_8_0_len;
> >  
>
diff mbox series

Patch

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;