[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[qemu-xen staging-4.19] machine: Add helpers to get cores/threads per socket



commit cfff72b21ebd8bb893181bb1107848cf8903ebaa
Author:     Zhao Liu <zhao1.liu@xxxxxxxxx>
AuthorDate: Wed Jun 28 21:54:34 2023 +0800
Commit:     Michael Tokarev <mjt@xxxxxxxxxx>
CommitDate: Sun Sep 10 19:39:41 2023 +0300

    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@xxxxxxxxxx>
    Signed-off-by: Zhao Liu <zhao1.liu@xxxxxxxxx>
    Message-Id: <20230628135437.1145805-2-zhao1.liu@xxxxxxxxxxxxxxx>
    Reviewed-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
    (cherry picked from commit a1d027be95bc375238e5b9292c6aa661a8ddef4c)
    Signed-off-by: Michael Tokarev <mjt@xxxxxxxxxx>
---
 hw/core/machine-smp.c | 10 ++++++++++
 include/hw/boards.h   |  2 ++
 2 files changed, 12 insertions(+)

diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
index 89fe0cda42..0f4d9b6f7a 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 6fbbfd56c8..75c0b195af 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
--
generated by git-patchbot for /home/xen/git/qemu-xen.git#staging-4.19



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.