From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Richard Henderson" <richard.henderson@linaro.org>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"David Gibson" <david@gibson.dropbear.id.au>
Subject: [PATCH v4 07/30] accel/tcg: Implement AccelOpsClass::has_work() as stub
Date: Sun, 12 Sep 2021 19:27:08 +0200 [thread overview]
Message-ID: <20210912172731.789788-8-f4bug@amsat.org> (raw)
In-Reply-To: <20210912172731.789788-1-f4bug@amsat.org>
Add TCG target-specific has_work() handler in TCGCPUOps,
and add tcg_cpu_has_work() as AccelOpsClass has_work()
implementation.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
include/hw/core/tcg-cpu-ops.h | 4 ++++
accel/tcg/tcg-accel-ops.c | 12 ++++++++++++
2 files changed, 16 insertions(+)
diff --git a/include/hw/core/tcg-cpu-ops.h b/include/hw/core/tcg-cpu-ops.h
index 55123cb4d22..4a4c4053e3b 100644
--- a/include/hw/core/tcg-cpu-ops.h
+++ b/include/hw/core/tcg-cpu-ops.h
@@ -66,6 +66,10 @@ struct TCGCPUOps {
void (*do_interrupt)(CPUState *cpu);
#endif /* !CONFIG_USER_ONLY || !TARGET_I386 */
#ifdef CONFIG_SOFTMMU
+ /**
+ * @has_work: Callback for checking if there is work to do.
+ */
+ bool (*has_work)(CPUState *cpu);
/** @cpu_exec_interrupt: Callback for processing interrupts in cpu_exec */
bool (*cpu_exec_interrupt)(CPUState *cpu, int interrupt_request);
/**
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
index 1a8e8390bd6..ed4ebe735fe 100644
--- a/accel/tcg/tcg-accel-ops.c
+++ b/accel/tcg/tcg-accel-ops.c
@@ -32,6 +32,7 @@
#include "qemu/main-loop.h"
#include "qemu/guest-random.h"
#include "exec/exec-all.h"
+#include "hw/core/tcg-cpu-ops.h"
#include "tcg-accel-ops.h"
#include "tcg-accel-ops-mttcg.h"
@@ -73,6 +74,16 @@ int tcg_cpus_exec(CPUState *cpu)
return ret;
}
+static bool tcg_cpu_has_work(CPUState *cpu)
+{
+ CPUClass *cc = CPU_GET_CLASS(cpu);
+
+ if (!cc->tcg_ops->has_work) {
+ return false;
+ }
+ return cc->tcg_ops->has_work(cpu);
+}
+
/* mask must never be zero, except for A20 change call */
void tcg_handle_interrupt(CPUState *cpu, int mask)
{
@@ -108,6 +119,7 @@ static void tcg_accel_ops_init(AccelOpsClass *ops)
ops->kick_vcpu_thread = rr_kick_vcpu_thread;
ops->handle_interrupt = tcg_handle_interrupt;
}
+ ops->has_work = tcg_cpu_has_work;
}
static void tcg_accel_ops_class_init(ObjectClass *oc, void *data)
--
2.31.1
next prev parent reply other threads:[~2021-09-12 17:32 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-12 17:27 [PATCH v4 00/30] accel: Move has_work() from SysemuCPUOps to AccelOpsClass Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 01/30] accel/tcg: Restrict cpu_handle_halt() to sysemu Philippe Mathieu-Daudé
2021-09-12 18:34 ` Richard Henderson
2021-09-12 17:27 ` [PATCH v4 02/30] hw/core: Restrict cpu_has_work() " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 03/30] hw/core: Un-inline cpu_has_work() Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 04/30] sysemu: Introduce AccelOpsClass::has_work() Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 05/30] accel/kvm: Implement AccelOpsClass::has_work() Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 06/30] accel/whpx: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` Philippe Mathieu-Daudé [this message]
2021-09-12 17:27 ` [PATCH v4 08/30] target/alpha: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 09/30] target/arm: Restrict has_work() handler to sysemu and TCG Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 10/30] target/avr: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 11/30] target/cris: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 12/30] target/hexagon: Remove unused has_work() handler Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 13/30] target/hppa: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 14/30] target/i386: Restrict has_work() handler to sysemu and TCG Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 15/30] target/m68k: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 16/30] target/microblaze: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 17/30] target/mips: Restrict has_work() handler to sysemu and TCG Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 18/30] target/nios2: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 19/30] target/openrisc: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 20/30] target/ppc: Introduce PowerPCCPUClass::has_work() Philippe Mathieu-Daudé
2021-09-12 18:46 ` Richard Henderson
2021-09-12 17:27 ` [PATCH v4 21/30] target/ppc: Restrict has_work() handlers to sysemu and TCG Philippe Mathieu-Daudé
2021-09-12 18:49 ` Richard Henderson
2021-09-12 17:27 ` [PATCH v4 22/30] target/riscv: Restrict has_work() handler " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 23/30] target/rx: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 24/30] target/s390x: Restrict has_work() handler to sysemu and TCG Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 25/30] target/sh4: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 26/30] target/sparc: Remove pointless use of CONFIG_TCG definition Philippe Mathieu-Daudé
2021-09-12 18:36 ` Richard Henderson
2021-09-12 17:27 ` [PATCH v4 27/30] target/sparc: Restrict has_work() handler to sysemu Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 28/30] target/tricore: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 29/30] target/xtensa: " Philippe Mathieu-Daudé
2021-09-12 17:27 ` [PATCH v4 30/30] accel: Add missing AccelOpsClass::has_work() and drop SysemuCPUOps one Philippe Mathieu-Daudé
2021-09-15 18:06 ` [PATCH v4 00/30] accel: Move has_work() from SysemuCPUOps to AccelOpsClass 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=20210912172731.789788-8-f4bug@amsat.org \
--to=f4bug@amsat.org \
--cc=david@gibson.dropbear.id.au \
--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 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).