All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	xen-devel@lists.xenproject.org, kvm@vger.kernel.org,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Yanan Wang" <wangyanan55@huawei.com>
Subject: [PATCH 08/14] accel: Move HAX hThread to accelerator context
Date: Wed,  5 Apr 2023 12:18:05 +0200	[thread overview]
Message-ID: <20230405101811.76663-9-philmd@linaro.org> (raw)
In-Reply-To: <20230405101811.76663-1-philmd@linaro.org>

hThread variable is only used by the HAX accelerator,
so move it to the accelerator specific context.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 include/hw/core/cpu.h           | 1 -
 target/i386/hax/hax-i386.h      | 3 +++
 target/i386/hax/hax-accel-ops.c | 2 +-
 target/i386/hax/hax-all.c       | 2 +-
 target/i386/hax/hax-windows.c   | 2 +-
 5 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 173f47d24e..8d27861ed5 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -334,7 +334,6 @@ struct CPUState {
 
     struct QemuThread *thread;
 #ifdef _WIN32
-    HANDLE hThread;
     QemuSemaphore sem;
 #endif
     int thread_id;
diff --git a/target/i386/hax/hax-i386.h b/target/i386/hax/hax-i386.h
index d11d43e857..15d16772db 100644
--- a/target/i386/hax/hax-i386.h
+++ b/target/i386/hax/hax-i386.h
@@ -27,6 +27,9 @@ typedef HANDLE hax_fd;
 extern struct hax_state hax_global;
 
 typedef struct AccelvCPUState {
+#ifdef _WIN32
+    HANDLE hThread;
+#endif
     hax_fd fd;
     int vcpu_id;
     struct hax_tunnel *tunnel;
diff --git a/target/i386/hax/hax-accel-ops.c b/target/i386/hax/hax-accel-ops.c
index a8512efcd5..5031096760 100644
--- a/target/i386/hax/hax-accel-ops.c
+++ b/target/i386/hax/hax-accel-ops.c
@@ -73,7 +73,7 @@ static void hax_start_vcpu_thread(CPUState *cpu)
                        cpu, QEMU_THREAD_JOINABLE);
     assert(cpu->accel);
 #ifdef _WIN32
-    cpu->hThread = qemu_thread_get_handle(cpu->thread);
+    cpu->accel->hThread = qemu_thread_get_handle(cpu->thread);
 #endif
 }
 
diff --git a/target/i386/hax/hax-all.c b/target/i386/hax/hax-all.c
index a55b18f353..c9ccc411e9 100644
--- a/target/i386/hax/hax-all.c
+++ b/target/i386/hax/hax-all.c
@@ -206,7 +206,7 @@ int hax_vcpu_destroy(CPUState *cpu)
     hax_close_fd(vcpu->fd);
     hax_global.vm->vcpus[vcpu->vcpu_id] = NULL;
 #ifdef _WIN32
-    CloseHandle(cpu->hThread);
+    CloseHandle(vcpu->hThread);
 #endif
     g_free(vcpu);
     cpu->accel = NULL;
diff --git a/target/i386/hax/hax-windows.c b/target/i386/hax/hax-windows.c
index 08ec93a256..b907953321 100644
--- a/target/i386/hax/hax-windows.c
+++ b/target/i386/hax/hax-windows.c
@@ -476,7 +476,7 @@ void hax_kick_vcpu_thread(CPUState *cpu)
      */
     cpu->exit_request = 1;
     if (!qemu_cpu_is_self(cpu)) {
-        if (!QueueUserAPC(dummy_apc_func, cpu->hThread, 0)) {
+        if (!QueueUserAPC(dummy_apc_func, cpu->accel->hThread, 0)) {
             fprintf(stderr, "%s: QueueUserAPC failed with error %lu\n",
                     __func__, GetLastError());
             exit(1);
-- 
2.38.1


  parent reply	other threads:[~2023-04-05 10:19 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-05 10:17 [PATCH 00/14] accel: Share CPUState accel context (HAX/NVMM/WHPX/HVF) Philippe Mathieu-Daudé
2023-04-05 10:17 ` [PATCH 01/14] accel: Document generic accelerator headers Philippe Mathieu-Daudé
2023-04-07 23:01   ` Richard Henderson
2023-04-05 10:17 ` [PATCH 02/14] accel: Remove unused hThread variable on TCG/WHPX Philippe Mathieu-Daudé
2023-04-07 23:01   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 03/14] accel: Fix a leak on Windows HAX Philippe Mathieu-Daudé
2023-04-07 23:01   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 04/14] accel: Destroy HAX vCPU threads once done Philippe Mathieu-Daudé
2023-04-05 10:18 ` [PATCH 05/14] accel: Rename 'hax_vcpu' as 'accel' in CPUState Philippe Mathieu-Daudé
2023-04-07 23:03   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 06/14] accel: Use a typedef for struct hax_vcpu_state Philippe Mathieu-Daudé
2023-04-05 10:18 ` [PATCH 07/14] accel: Rename struct hax_vcpu_state -> struct AccelvCPUState Philippe Mathieu-Daudé
2023-04-07 23:07   ` Richard Henderson
2023-04-07 23:09   ` Richard Henderson
2023-04-05 10:18 ` Philippe Mathieu-Daudé [this message]
2023-04-07 23:07   ` [PATCH 08/14] accel: Move HAX hThread to accelerator context Richard Henderson
2023-04-05 10:18 ` [PATCH 09/14] accel: Allocate NVMM vCPU using g_try_FOO() Philippe Mathieu-Daudé
2023-04-05 13:55   ` Alex Bennée
2023-04-05 15:18     ` Philippe Mathieu-Daudé
2023-04-05 10:18 ` [PATCH 10/14] accel: Rename NVMM struct qemu_vcpu -> struct AccelvCPUState Philippe Mathieu-Daudé
2023-04-07 23:11   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 11/14] accel: Inline NVMM get_qemu_vcpu() Philippe Mathieu-Daudé
2023-04-07 23:11   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 12/14] accel: Rename WHPX struct whpx_vcpu -> struct AccelvCPUState Philippe Mathieu-Daudé
2023-04-07 23:13   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 13/14] accel: Inline WHPX get_whpx_vcpu() Philippe Mathieu-Daudé
2023-04-07 23:13   ` Richard Henderson
2023-04-05 10:18 ` [PATCH 14/14] accel: Rename HVF struct hvf_vcpu_state -> struct AccelvCPUState Philippe Mathieu-Daudé
2023-04-07 23:14   ` Richard Henderson

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=20230405101811.76663-9-philmd@linaro.org \
    --to=philmd@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=eduardo@habkost.net \
    --cc=kvm@vger.kernel.org \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=wangyanan55@huawei.com \
    --cc=xen-devel@lists.xenproject.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.