All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Pierrick Bouvier" <pierrick.bouvier@linaro.org>
Subject: [RFC PATCH 04/19] accel: Propagate AccelState to AccelClass::init_machine()
Date: Fri,  6 Jun 2025 18:44:03 +0200	[thread overview]
Message-ID: <20250606164418.98655-5-philmd@linaro.org> (raw)
In-Reply-To: <20250606164418.98655-1-philmd@linaro.org>

In order to avoid init_machine() to call current_accel(),
pass AccelState along.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/qemu/accel.h        | 2 +-
 accel/accel-system.c        | 2 +-
 accel/hvf/hvf-accel-ops.c   | 2 +-
 accel/kvm/kvm-all.c         | 2 +-
 accel/qtest/qtest.c         | 2 +-
 accel/tcg/tcg-all.c         | 2 +-
 bsd-user/main.c             | 2 +-
 linux-user/main.c           | 2 +-
 target/i386/nvmm/nvmm-all.c | 2 +-
 target/i386/whpx/whpx-all.c | 2 +-
 10 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/include/qemu/accel.h b/include/qemu/accel.h
index 23c62cbeb07..c660c5f4b11 100644
--- a/include/qemu/accel.h
+++ b/include/qemu/accel.h
@@ -39,7 +39,7 @@ typedef struct AccelClass {
     const char *name;
     AccelOpsClass *ops;
 
-    int (*init_machine)(MachineState *ms);
+    int (*init_machine)(MachineState *ms, AccelState *as);
     bool (*cpu_common_realize)(CPUState *cpu, Error **errp);
     void (*cpu_common_unrealize)(CPUState *cpu);
 
diff --git a/accel/accel-system.c b/accel/accel-system.c
index 64bc991b1ce..68d2f28388b 100644
--- a/accel/accel-system.c
+++ b/accel/accel-system.c
@@ -37,7 +37,7 @@ int accel_init_machine(AccelState *accel, MachineState *ms)
     int ret;
     ms->accelerator = accel;
     *(acc->allowed) = true;
-    ret = acc->init_machine(ms);
+    ret = acc->init_machine(ms, accel);
     if (ret < 0) {
         ms->accelerator = NULL;
         *(acc->allowed) = false;
diff --git a/accel/hvf/hvf-accel-ops.c b/accel/hvf/hvf-accel-ops.c
index b8b6116bc84..3dd9de26dbb 100644
--- a/accel/hvf/hvf-accel-ops.c
+++ b/accel/hvf/hvf-accel-ops.c
@@ -315,7 +315,7 @@ static void dummy_signal(int sig)
 
 bool hvf_allowed;
 
-static int hvf_accel_init(MachineState *ms)
+static int hvf_accel_init(MachineState *ms, AccelState *as)
 {
     int x;
     hv_return_t ret;
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index a31778341c2..5b28b15ccec 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -2567,7 +2567,7 @@ static int kvm_setup_dirty_ring(KVMState *s)
     return 0;
 }
 
-static int kvm_init(MachineState *ms)
+static int kvm_init(MachineState *ms, AccelState *as)
 {
     MachineClass *mc = MACHINE_GET_CLASS(ms);
     static const char upgrade_note[] =
diff --git a/accel/qtest/qtest.c b/accel/qtest/qtest.c
index 92bed9264ce..c5a53ecb6dd 100644
--- a/accel/qtest/qtest.c
+++ b/accel/qtest/qtest.c
@@ -37,7 +37,7 @@ static void qtest_set_virtual_clock(int64_t count)
     qatomic_set_i64(&qtest_clock_counter, count);
 }
 
-static int qtest_init_accel(MachineState *ms)
+static int qtest_init_accel(MachineState *ms, AccelState *as)
 {
     return 0;
 }
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index 6e5dc333d59..6c5979861cf 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -80,7 +80,7 @@ static void tcg_accel_instance_init(Object *obj)
 
 bool one_insn_per_tb;
 
-static int tcg_init_machine(MachineState *ms)
+static int tcg_init_machine(MachineState *ms, AccelState *as)
 {
     TCGState *s = TCG_STATE(current_accel());
     unsigned max_threads = 1;
diff --git a/bsd-user/main.c b/bsd-user/main.c
index 7c0a059c3ba..ad2032a8b01 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -474,7 +474,7 @@ int main(int argc, char **argv)
                                  opt_one_insn_per_tb, &error_abort);
         object_property_set_int(OBJECT(accel), "tb-size",
                                 opt_tb_size, &error_abort);
-        ac->init_machine(NULL);
+        ac->init_machine(NULL, accel);
     }
 
     /*
diff --git a/linux-user/main.c b/linux-user/main.c
index 5ac5b55dc65..2441e6edc71 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -820,7 +820,7 @@ int main(int argc, char **argv, char **envp)
                                  opt_one_insn_per_tb, &error_abort);
         object_property_set_int(OBJECT(accel), "tb-size",
                                 opt_tb_size, &error_abort);
-        ac->init_machine(NULL);
+        ac->init_machine(NULL, accel);
     }
 
     /*
diff --git a/target/i386/nvmm/nvmm-all.c b/target/i386/nvmm/nvmm-all.c
index f1c6120ccf1..887534d4ca6 100644
--- a/target/i386/nvmm/nvmm-all.c
+++ b/target/i386/nvmm/nvmm-all.c
@@ -1153,7 +1153,7 @@ static struct RAMBlockNotifier nvmm_ram_notifier = {
 /* -------------------------------------------------------------------------- */
 
 static int
-nvmm_accel_init(MachineState *ms)
+nvmm_accel_init(MachineState *ms, AccelState *as)
 {
     int ret, err;
 
diff --git a/target/i386/whpx/whpx-all.c b/target/i386/whpx/whpx-all.c
index cf6d3e4cdd4..238c3b95c6f 100644
--- a/target/i386/whpx/whpx-all.c
+++ b/target/i386/whpx/whpx-all.c
@@ -2505,7 +2505,7 @@ static void whpx_set_kernel_irqchip(Object *obj, Visitor *v,
  * Partition support
  */
 
-static int whpx_accel_init(MachineState *ms)
+static int whpx_accel_init(MachineState *ms, AccelState *as)
 {
     struct whpx_state *whpx;
     int ret;
-- 
2.49.0



  parent reply	other threads:[~2025-06-06 16:45 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-06 16:43 [RFC PATCH 00/19] accel: Preparatory cleanups for split-accel Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 01/19] hw/arm/virt: Only require TCG || QTest to use virtualization extension Philippe Mathieu-Daudé
2025-06-07 13:18   ` Richard Henderson
2025-06-11 13:37   ` Alex Bennée
2025-06-11 13:45   ` Miguel Luis
2025-06-11 14:31     ` Alex Bennée
2025-06-11 14:38       ` Miguel Luis
2025-06-06 16:44 ` [RFC PATCH 02/19] system/cpus: Only kick running vCPUs Philippe Mathieu-Daudé
2025-06-07 13:23   ` Richard Henderson
2025-06-16  8:21     ` Philippe Mathieu-Daudé
2025-06-17  9:42       ` Alex Bennée
2025-06-06 16:44 ` [RFC PATCH 03/19] accel: Keep reference to AccelOpsClass in AccelClass Philippe Mathieu-Daudé
2025-06-07 13:35   ` Richard Henderson
2025-06-11 13:42   ` Alex Bennée
2025-06-06 16:44 ` Philippe Mathieu-Daudé [this message]
2025-06-07 13:31   ` [RFC PATCH 04/19] accel: Propagate AccelState to AccelClass::init_machine() Richard Henderson
2025-06-11 13:42   ` Alex Bennée
2025-06-06 16:44 ` [RFC PATCH 05/19] accel/kvm: Prefer local AccelState over global MachineState::accel Philippe Mathieu-Daudé
2025-06-07 13:30   ` Richard Henderson
2025-06-06 16:44 ` [RFC PATCH 06/19] accel/hvf: Fix TYPE_HVF_ACCEL instance size Philippe Mathieu-Daudé
2025-06-07 13:29   ` Richard Henderson
2025-06-06 16:44 ` [RFC PATCH 07/19] accel/hvf: Re-use QOM allocated state Philippe Mathieu-Daudé
2025-06-07 13:30   ` Richard Henderson
2025-06-06 16:44 ` [RFC PATCH 08/19] accel/tcg: Prefer local AccelState over global current_accel() Philippe Mathieu-Daudé
2025-06-07 13:37   ` Richard Henderson
2025-06-06 16:44 ` [RFC PATCH 09/19] accel: Factor accel_cpu_realize() out Philippe Mathieu-Daudé
2025-06-11 13:46   ` Alex Bennée
2025-06-06 16:44 ` [RFC PATCH 10/19] accel/dummy: Factor dummy_thread_precreate() out Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 11/19] accel/dummy: Factor tcg_vcpu_thread_precreate() out Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 12/19] accel: Factor accel_create_vcpu_thread() out Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 13/19] accel: Introduce AccelOpsClass::cpu_thread_routine handler Philippe Mathieu-Daudé
2025-06-11 14:09   ` Alex Bennée
2025-06-06 16:44 ` [RFC PATCH 14/19] accel/dummy: Convert to AccelOpsClass::cpu_thread_routine Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 15/19] accel/tcg: " Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 16/19] accel/hvf: " Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 17/19] accel/kvm: " Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 18/19] accel/nvmm: " Philippe Mathieu-Daudé
2025-06-06 16:44 ` [RFC PATCH 19/19] accel/whpx: " Philippe Mathieu-Daudé
2025-06-11 14:00 ` [RFC PATCH 00/19] accel: Preparatory cleanups for split-accel Alex Bennée

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250606164418.98655-5-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.