aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2025-04-04 18:52:36 -0700
committerRichard Henderson <richard.henderson@linaro.org>2025-04-23 15:07:32 -0700
commit84cde4af081b9fa9c0fc82d3f1a8da406b4ba9e4 (patch)
tree1f63f8d59a93d3b2e70533b2b5fa8c4fb5398a9f
parentd1aa577228e6eeda3589c6480d994ee4bd0d23e5 (diff)
downloadqemu-84cde4af081b9fa9c0fc82d3f1a8da406b4ba9e4.zip
qemu-84cde4af081b9fa9c0fc82d3f1a8da406b4ba9e4.tar.gz
qemu-84cde4af081b9fa9c0fc82d3f1a8da406b4ba9e4.tar.bz2
accel/tcg: Move mttcg warning to tcg_init_machine
Delay the warning to tcg_init_machine, because we will have resolved the CPUClass at that point. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--accel/tcg/tcg-all.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index fa77a4c..ecdd488 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -93,7 +93,8 @@ static int tcg_init_machine(MachineState *ms)
# else
bool mttcg_supported = false;
# endif
- if (s->mttcg_enabled == ON_OFF_AUTO_AUTO) {
+ switch (s->mttcg_enabled) {
+ case ON_OFF_AUTO_AUTO:
/*
* We default to false if we know other options have been enabled
* which are currently incompatible with MTTCG. Otherwise when each
@@ -108,12 +109,22 @@ static int tcg_init_machine(MachineState *ms)
*/
if (mttcg_supported && !icount_enabled()) {
s->mttcg_enabled = ON_OFF_AUTO_ON;
+ max_threads = ms->smp.max_cpus;
} else {
s->mttcg_enabled = ON_OFF_AUTO_OFF;
}
- }
- if (s->mttcg_enabled == ON_OFF_AUTO_ON) {
+ break;
+ case ON_OFF_AUTO_ON:
+ if (!mttcg_supported) {
+ warn_report("Guest not yet converted to MTTCG - "
+ "you may get unexpected results");
+ }
max_threads = ms->smp.max_cpus;
+ break;
+ case ON_OFF_AUTO_OFF:
+ break;
+ default:
+ g_assert_not_reached();
}
#endif
@@ -153,10 +164,6 @@ static void tcg_set_thread(Object *obj, const char *value, Error **errp)
if (icount_enabled()) {
error_setg(errp, "No MTTCG when icount is enabled");
} else {
-#ifndef TARGET_SUPPORTS_MTTCG
- warn_report("Guest not yet converted to MTTCG - "
- "you may get unexpected results");
-#endif
s->mttcg_enabled = ON_OFF_AUTO_ON;
}
} else if (strcmp(value, "single") == 0) {