[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 04/30] sysemu: Introduce AccelOpsClass::has_work()
- To: qemu-devel@xxxxxxxxxx
- From: Philippe Mathieu-Daudé <f4bug@xxxxxxxxx>
- Date: Thu, 2 Sep 2021 18:15:17 +0200
- Cc: Bin Meng <bin.meng@xxxxxxxxxxxxx>, Eduardo Habkost <ehabkost@xxxxxxxxxx>, Greg Kurz <groug@xxxxxxxx>, haxm-team@xxxxxxxxx, Kamil Rytarowski <kamil@xxxxxxxxxx>, qemu-ppc@xxxxxxxxxx, Anthony Perard <anthony.perard@xxxxxxxxxx>, Marcel Apfelbaum <marcel.apfelbaum@xxxxxxxxx>, Michael Rolnik <mrolnik@xxxxxxxxx>, qemu-riscv@xxxxxxxxxx, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>, Thomas Huth <thuth@xxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Chris Wulff <crwulff@xxxxxxxxx>, Laurent Vivier <lvivier@xxxxxxxxxx>, Cameron Esfahani <dirty@xxxxxxxxx>, Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx>, Max Filippov <jcmvbkbc@xxxxxxxxx>, Taylor Simpson <tsimpson@xxxxxxxxxxx>, qemu-s390x@xxxxxxxxxx, Richard Henderson <richard.henderson@xxxxxxxxxx>, Bastian Koppelmann <kbastian@xxxxxxxxxxxxxxxxxxxxx>, Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>, Artyom Tarasenko <atar4qemu@xxxxxxxxx>, Aurelien Jarno <aurelien@xxxxxxxxxxx>, Paul Durrant <paul@xxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>, Alistair Francis <alistair.francis@xxxxxxx>, "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxx>, Roman Bolshakov <r.bolshakov@xxxxxxxxx>, Laurent Vivier <laurent@xxxxxxxxx>, Cornelia Huck <cohuck@xxxxxxxxxx>, qemu-arm@xxxxxxxxxx, Wenchao Wang <wenchao.wang@xxxxxxxxx>, Philippe Mathieu-Daudé <f4bug@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Marek Vasut <marex@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Aleksandar Rikalo <aleksandar.rikalo@xxxxxxxxxx>, Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx>, Colin Xu <colin.xu@xxxxxxxxx>, Claudio Fontana <cfontana@xxxxxxx>, Palmer Dabbelt <palmer@xxxxxxxxxxx>, Stafford Horne <shorne@xxxxxxxxx>, Reinoud Zandijk <reinoud@xxxxxxxxxx>, kvm@xxxxxxxxxxxxxxx
- Delivery-date: Thu, 02 Sep 2021 16:16:15 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Introduce an accelerator-specific has_work() handler.
Eventually call it from cpu_has_work().
Signed-off-by: Philippe Mathieu-Daudé <f4bug@xxxxxxxxx>
---
include/sysemu/accel-ops.h | 5 +++++
softmmu/cpus.c | 3 +++
2 files changed, 8 insertions(+)
diff --git a/include/sysemu/accel-ops.h b/include/sysemu/accel-ops.h
index 032f6979d76..de83f095f20 100644
--- a/include/sysemu/accel-ops.h
+++ b/include/sysemu/accel-ops.h
@@ -31,6 +31,11 @@ struct AccelOpsClass {
void (*create_vcpu_thread)(CPUState *cpu); /* MANDATORY NON-NULL */
void (*kick_vcpu_thread)(CPUState *cpu);
+ /**
+ * @has_work: Callback for checking if there is work to do.
+ */
+ bool (*has_work)(CPUState *cpu);
+
void (*synchronize_post_reset)(CPUState *cpu);
void (*synchronize_post_init)(CPUState *cpu);
void (*synchronize_state)(CPUState *cpu);
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index 7e2cb2c571b..2a61dfd6287 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -255,6 +255,9 @@ bool cpu_has_work(CPUState *cpu)
{
CPUClass *cc = CPU_GET_CLASS(cpu);
+ if (cpus_accel->has_work) {
+ return cpus_accel->has_work(cpu);
+ }
g_assert(cc->has_work);
return cc->has_work(cpu);
}
--
2.31.1
|