[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 03/13] hw/core/machine-smp: Calculate total CPUs once in machi
From: |
Zhao Liu |
Subject: |
[PATCH v2 03/13] hw/core/machine-smp: Calculate total CPUs once in machine_parse_smp_config() |
Date: |
Sat, 9 Mar 2024 00:01:38 +0800 |
From: Zhao Liu <zhao1.liu@intel.com>
In machine_parse_smp_config(), the number of total CPUs is calculated
by:
drawers * books * sockets * dies * clusters * cores * threads
To avoid missing the future new topology level, use a local variable to
cache the calculation result so that total CPUs are only calculated
once.
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/core/machine-smp.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/core/machine-smp.c b/hw/core/machine-smp.c
index 50a5a40dbc3d..27864c950766 100644
--- a/hw/core/machine-smp.c
+++ b/hw/core/machine-smp.c
@@ -91,6 +91,7 @@ void machine_parse_smp_config(MachineState *ms,
unsigned cores = config->has_cores ? config->cores : 0;
unsigned threads = config->has_threads ? config->threads : 0;
unsigned maxcpus = config->has_maxcpus ? config->maxcpus : 0;
+ unsigned total_cpus;
/*
* Specified CPU topology parameters must be greater than zero,
@@ -211,8 +212,8 @@ void machine_parse_smp_config(MachineState *ms,
}
}
- maxcpus = maxcpus > 0 ? maxcpus : drawers * books * sockets * dies *
- clusters * cores * threads;
+ total_cpus = drawers * books * sockets * dies * clusters * cores * threads;
+ maxcpus = maxcpus > 0 ? maxcpus : total_cpus;
cpus = cpus > 0 ? cpus : maxcpus;
ms->smp.cpus = cpus;
@@ -228,8 +229,7 @@ void machine_parse_smp_config(MachineState *ms,
mc->smp_props.has_clusters = config->has_clusters;
/* sanity-check of the computed topology */
- if (drawers * books * sockets * dies * clusters * cores * threads !=
- maxcpus) {
+ if (total_cpus != maxcpus) {
g_autofree char *topo_msg = cpu_hierarchy_to_string(ms);
error_setg(errp, "Invalid CPU topology: "
"product of the hierarchy must match maxcpus: "
--
2.34.1
- [PATCH v2 00/13] Cleanup on SMP and its test, Zhao Liu, 2024/03/08
- [PATCH v2 01/13] hw/core/machine-smp: Remove deprecated "parameter=0" SMP configurations, Zhao Liu, 2024/03/08
- [PATCH v2 02/13] hw/core/machine-smp: Deprecate unsupported "parameter=1" SMP configurations, Zhao Liu, 2024/03/08
- [PATCH v2 03/13] hw/core/machine-smp: Calculate total CPUs once in machine_parse_smp_config(),
Zhao Liu <=
- [PATCH v2 04/13] tests/unit/test-smp-parse: Drop the unsupported "dies=1" case, Zhao Liu, 2024/03/08
- [PATCH v2 05/13] tests/unit/test-smp-parse: Use CPU number macros in invalid topology case, Zhao Liu, 2024/03/08
- [PATCH v2 06/13] tests/unit/test-smp-parse: Bump max_cpus to 4096, Zhao Liu, 2024/03/08
- [PATCH v2 07/13] tests/unit/test-smp-parse: Make test cases aware of the book/drawer, Zhao Liu, 2024/03/08
- [PATCH v2 08/13] tests/unit/test-smp-parse: Test "books" parameter in -smp, Zhao Liu, 2024/03/08
- [PATCH v2 09/13] tests/unit/test-smp-parse: Test "drawers" parameter in -smp, Zhao Liu, 2024/03/08
- [PATCH v2 10/13] tests/unit/test-smp-parse: Test "drawers" and "books" combination case, Zhao Liu, 2024/03/08
- [PATCH v2 11/13] tests/unit/test-smp-parse: Test the full 7-levels topology hierarchy, Zhao Liu, 2024/03/08
- [PATCH v2 12/13] tests/unit/test-smp-parse: Test smp_props.has_clusters, Zhao Liu, 2024/03/08
- [PATCH v2 13/13] tests/unit/test-smp-parse: Test "parameter=0" SMP configurations, Zhao Liu, 2024/03/08