[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 14/22] exec: Add function to synchronously flush
From: |
Lluís Vilanova |
Subject: |
[Qemu-devel] [PATCH v5 14/22] exec: Add function to synchronously flush TB on a stopped vCPU |
Date: |
Wed, 13 Sep 2017 00:58:14 +0300 |
User-agent: |
StGit/0.18 |
Signed-off-by: Lluís Vilanova <address@hidden>
---
accel/stubs/tcg-stub.c | 3 +++
accel/tcg/translate-all.c | 7 +++++++
include/exec/exec-all.h | 1 +
3 files changed, 11 insertions(+)
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index 5dd480b1a2..5226c4a8a4 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -20,3 +20,6 @@
void tb_flush(CPUState *cpu)
{
}
+void tb_flush_sync(CPUState *cpu)
+{
+}
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 2d1ed06065..a334ac4ccb 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -929,6 +929,13 @@ done:
tb_unlock();
}
+void tb_flush_sync(CPUState *cpu)
+{
+ unsigned tb_flush_count = atomic_mb_read(&tcg_ctx.tb_ctx.tb_flush_count);
+ assert(cpu == current_cpu);
+ do_tb_flush(cpu, RUN_ON_CPU_HOST_INT(tb_flush_count));
+}
+
void tb_flush(CPUState *cpu)
{
if (tcg_enabled()) {
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 673fc066d0..3f38186a5e 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -358,6 +358,7 @@ struct TranslationBlock {
void tb_free(TranslationBlock *tb);
void tb_flush(CPUState *cpu);
+void tb_flush_sync(CPUState *cpu);
void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr);
TranslationBlock *tb_htable_lookup(CPUState *cpu, target_ulong pc,
target_ulong cs_base, uint32_t flags);
- [Qemu-devel] [PATCH v5 04/22] instrument: [linux-user] Add command line library loader, (continued)
- [Qemu-devel] [PATCH v5 04/22] instrument: [linux-user] Add command line library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 05/22] instrument: [bsd-user] Add command line library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 06/22] instrument: [softmmu] Add command line library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 07/22] instrument: [qapi] Add library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 08/22] instrument: [hmp] Add library loader, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 09/22] instrument: Add basic control interface, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 10/22] instrument: Add support for tracing events, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 11/22] instrument: Track vCPUs, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 12/22] instrument: Add event 'guest_cpu_enter', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 13/22] instrument: Support synchronous modification of vCPU state, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 14/22] exec: Add function to synchronously flush TB on a stopped vCPU,
Lluís Vilanova <=
- [Qemu-devel] [PATCH v5 15/22] instrument: Add event 'guest_cpu_exit', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 16/22] instrument: Add event 'guest_cpu_reset', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 17/22] trace: Introduce a proper structure to describe memory accesses, Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 18/22] instrument: Add event 'guest_mem_before_trans', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 19/22] instrument: Add event 'guest_mem_before_exec', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 20/22] instrument: Add event 'guest_user_syscall', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 21/22] instrument: Add event 'guest_user_syscall_ret', Lluís Vilanova, 2017/09/12
- [Qemu-devel] [PATCH v5 22/22] instrument: Add API to manipulate guest memory, Lluís Vilanova, 2017/09/12
- Re: [Qemu-devel] [PATCH v5 00/22] instrument: Add basic event instrumentation, no-reply, 2017/09/12