From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Reinoud Zandijk" <reinoud@netbsd.org>,
qemu-arm@nongnu.org, kvm@vger.kernel.org,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Anthony Perard" <anthony.perard@citrix.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Roman Bolshakov" <rbolshakov@ddn.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Paul Durrant" <paul@xen.org>,
"Sunil Muthuswamy" <sunilmut@microsoft.com>,
"Alexander Graf" <agraf@csgraf.de>,
"Richard Henderson" <richard.henderson@linaro.org>,
xen-devel@lists.xenproject.org,
"Eduardo Habkost" <eduardo@habkost.net>,
"Cameron Esfahani" <dirty@apple.com>
Subject: [PATCH v2 08/16] accel: Move HAX hThread to accelerator context
Date: Thu, 22 Jun 2023 18:08:15 +0200 [thread overview]
Message-ID: <20230622160823.71851-9-philmd@linaro.org> (raw)
In-Reply-To: <20230622160823.71851-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>
Reviewed-by: Richard Henderson <richard.henderson@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 7a0eb5ef32..01388d5918 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -337,7 +337,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 341688a254..7055f5b53e 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 AccelCPUState {
+#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
next prev parent reply other threads:[~2023-06-22 16:10 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-22 16:08 [PATCH v2 00/16] accel: Share CPUState accel context (HAX/NVMM/WHPX/HVF) Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 01/16] MAINTAINERS: Update Roman Bolshakov email address Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 02/16] accel: Document generic accelerator headers Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 03/16] accel: Remove unused hThread variable on TCG/WHPX Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 04/16] accel: Fix a leak on Windows HAX Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 05/16] accel: Destroy HAX vCPU threads once done Philippe Mathieu-Daudé
2023-06-22 17:36 ` Richard Henderson
2023-06-22 16:08 ` [PATCH v2 06/16] accel: Rename 'hax_vcpu' as 'accel' in CPUState Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 07/16] accel: Rename HAX 'struct hax_vcpu_state' -> AccelCPUState Philippe Mathieu-Daudé
2023-06-22 17:46 ` Richard Henderson
2023-06-24 17:36 ` Philippe Mathieu-Daudé
2023-06-22 16:08 ` Philippe Mathieu-Daudé [this message]
2023-06-22 16:08 ` [PATCH v2 09/16] accel: Remove NVMM unreachable error path Philippe Mathieu-Daudé
2023-06-22 17:47 ` Richard Henderson
2023-06-22 16:08 ` [PATCH v2 10/16] accel: Rename NVMM 'struct qemu_vcpu' -> AccelCPUState Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 11/16] accel: Inline NVMM get_qemu_vcpu() Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 12/16] accel: Remove WHPX unreachable error path Philippe Mathieu-Daudé
2023-06-22 17:48 ` Richard Henderson
2023-06-22 16:08 ` [PATCH v2 13/16] accel: Rename WHPX 'struct whpx_vcpu' -> AccelCPUState Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 14/16] accel: Inline WHPX get_whpx_vcpu() Philippe Mathieu-Daudé
2023-06-22 16:08 ` [PATCH v2 15/16] accel: Rename 'cpu_state' -> 'cpu' Philippe Mathieu-Daudé
2023-06-22 17:51 ` Richard Henderson
2023-06-22 16:08 ` [PATCH v2 16/16] accel: Rename HVF 'struct hvf_vcpu_state' -> AccelCPUState Philippe Mathieu-Daudé
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=20230622160823.71851-9-philmd@linaro.org \
--to=philmd@linaro.org \
--cc=agraf@csgraf.de \
--cc=anthony.perard@citrix.com \
--cc=dirty@apple.com \
--cc=eduardo@habkost.net \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rbolshakov@ddn.com \
--cc=reinoud@netbsd.org \
--cc=richard.henderson@linaro.org \
--cc=sstabellini@kernel.org \
--cc=sunilmut@microsoft.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).