]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
machine: Add helpers to get cores/threads per socket
authorZhao Liu <zhao1.liu@intel.com>
Wed, 28 Jun 2023 13:54:34 +0000 (21:54 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 10 Jul 2023 20:17:08 +0000 (16:17 -0400)
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>
Message-Id: <20230628135437.1145805-2-zhao1.liu@linux.intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/core/machine-smp.c
include/hw/boards.h

index 89fe0cda4275b63f5289c31981c0fe2a171f95f9..0f4d9b6f7a9f49720364498fc2203c87bb930f64 100644 (file)
@@ -197,3 +197,13 @@ void machine_parse_smp_config(MachineState *ms,
         return;
     }
 }
+
+unsigned int machine_topo_get_cores_per_socket(const MachineState *ms)
+{
+    return ms->smp.cores * ms->smp.clusters * ms->smp.dies;
+}
+
+unsigned int machine_topo_get_threads_per_socket(const MachineState *ms)
+{
+    return ms->smp.threads * machine_topo_get_cores_per_socket(ms);
+}
index 6b267c21ce7ddb7be68e9cd869f7b4551de572d0..12d9e9d17ce9303914b4571ffb68ba4052859cbc 100644 (file)
@@ -35,6 +35,8 @@ void machine_set_cpu_numa_node(MachineState *machine,
                                Error **errp);
 void machine_parse_smp_config(MachineState *ms,
                               const SMPConfiguration *config, Error **errp);
+unsigned int machine_topo_get_cores_per_socket(const MachineState *ms);
+unsigned int machine_topo_get_threads_per_socket(const MachineState *ms);
 
 /**
  * machine_class_allow_dynamic_sysbus_dev: Add type to list of valid devices