diff options
author | Zhao Liu <zhao1.liu@intel.com> | 2023-06-28 21:54:34 +0800 |
---|---|---|
committer | Michael Tokarev <mjt@tls.msk.ru> | 2023-09-10 19:39:41 +0300 |
commit | cfff72b21ebd8bb893181bb1107848cf8903ebaa (patch) | |
tree | 6821f3381b7861b9597b917e3592610133af1d8e | |
parent | e7f12ce43d9fc6016c1f12d49bcb5e024663d7ad (diff) | |
download | qemu-cfff72b21ebd8bb893181bb1107848cf8903ebaa.zip qemu-cfff72b21ebd8bb893181bb1107848cf8903ebaa.tar.gz qemu-cfff72b21ebd8bb893181bb1107848cf8903ebaa.tar.bz2 |
machine: Add helpers to get cores/threads per socket
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>
(cherry picked from commit a1d027be95bc375238e5b9292c6aa661a8ddef4c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r-- | hw/core/machine-smp.c | 10 | ||||
-rw-r--r-- | include/hw/boards.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c index 89fe0cd..0f4d9b6 100644 --- a/hw/core/machine-smp.c +++ b/hw/core/machine-smp.c @@ -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); +} diff --git a/include/hw/boards.h b/include/hw/boards.h index 6fbbfd5..75c0b19 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -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 |