[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 04/14] hw/core/machine-smp: Calculate total CPUs once in machine_
From: |
Zhao Liu |
Subject: |
[PATCH 04/14] hw/core/machine-smp: Calculate total CPUs once in machine_parse_smp_config() |
Date: |
Wed, 6 Mar 2024 17:53:57 +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>
---
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 3d9799aef039..0e398ef02666 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->cores;
unsigned threads = config->threads;
unsigned maxcpus = config->maxcpus;
+ 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
- Re: [PATCH 02/14] hw/core/machine-smp: Deprecate unsupported "parameter=1" SMP configurations, (continued)
- [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Zhao Liu, 2024/03/06
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Thomas Huth, 2024/03/08
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Zhao Liu, 2024/03/08
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Prasad Pandit, 2024/03/10
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Zhao Liu, 2024/03/11
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Prasad Pandit, 2024/03/13
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Zhao Liu, 2024/03/18
- Re: [PATCH 03/14] hw/core/machine-smp: Simplify variables' initialization in machine_parse_smp_config(), Prasad Pandit, 2024/03/18
[PATCH 04/14] hw/core/machine-smp: Calculate total CPUs once in machine_parse_smp_config(),
Zhao Liu <=
[PATCH 05/14] tests/unit/test-smp-parse: Drop the unsupported "dies=1" case, Zhao Liu, 2024/03/06
[PATCH 06/14] tests/unit/test-smp-parse: Use CPU number macros in invalid topology case, Zhao Liu, 2024/03/06
[PATCH 07/14] tests/unit/test-smp-parse: Bump max_cpus to 4096, Zhao Liu, 2024/03/06
[PATCH 08/14] tests/unit/test-smp-parse: Make test cases aware of the book/drawer, Zhao Liu, 2024/03/06
[PATCH 09/14] tests/unit/test-smp-parse: Test "books" parameter in -smp, Zhao Liu, 2024/03/06
[PATCH 10/14] tests/unit/test-smp-parse: Test "drawers" parameter in -smp, Zhao Liu, 2024/03/06