qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH-for-10.0 6/6] accel/tcg: Allow tcg_exec_realizefn() initializ


From: Richard Henderson
Subject: Re: [PATCH-for-10.0 6/6] accel/tcg: Allow tcg_exec_realizefn() initialize multiple frontends
Date: Wed, 27 Nov 2024 11:41:06 -0600
User-agent: Mozilla Thunderbird

On 11/27/24 11:28, Anton Johansson wrote:
On 27/11/24, Philippe Mathieu-Daudé wrote:
Rather than initializing the first random target architecture
and ignore the following ones when a global boolean is set,
use a bitmask allowing different frontend targets to be
initialized.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
  accel/tcg/cpu-exec.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index ab77740c954..b37995f7d0c 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -1070,16 +1070,17 @@ int cpu_exec(CPUState *cpu)
bool tcg_exec_realizefn(CPUState *cpu, Error **errp)
  {
+    static unsigned initialized_targets;
      const TCGCPUOps *tcg_ops = cpu->cc->tcg_ops;
- if (!tcg_target_initialized) {
+    if (!(initialized_targets & tcg_ops->arch_id)) {
          /* Check mandatory TCGCPUOps handlers */
  #ifndef CONFIG_USER_ONLY
          assert(tcg_ops->cpu_exec_halt);
          assert(tcg_ops->cpu_exec_interrupt);
  #endif /* !CONFIG_USER_ONLY */
          tcg_ops->initialize_once();
-        tcg_target_initialized = true;
+        initialized_targets |= tcg_ops->arch_id;
      }
cpu->tb_jmp_cache = g_new0(CPUJumpCache, 1);
--
2.45.2


Only suggestion would be to assert that arch_id is set, might save some
headache in the future.

Yep.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]