[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v12 03/21] sysemu: system functions for replay
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [RFC PATCH v12 03/21] sysemu: system functions for replay |
Date: |
Tue, 05 May 2015 13:17:53 +0300 |
User-agent: |
StGit/0.16 |
This patch removes "static" specifier from several qemu function to make
them visible to the replay module. It also invents several system functions
that will be used by replay.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
---
cpus.c | 2 +-
include/exec/exec-all.h | 1 +
include/qom/cpu.h | 10 ++++++++++
include/sysemu/cpus.h | 1 +
translate-all.c | 8 ++++++++
5 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/cpus.c b/cpus.c
index e6dcae3..d566f66 100644
--- a/cpus.c
+++ b/cpus.c
@@ -88,7 +88,7 @@ static bool cpu_thread_is_idle(CPUState *cpu)
return true;
}
-static bool all_cpu_threads_idle(void)
+bool all_cpu_threads_idle(void)
{
CPUState *cpu;
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 054a42c..e7c3328 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -216,6 +216,7 @@ static inline unsigned int tb_phys_hash_func(tb_page_addr_t
pc)
void tb_free(TranslationBlock *tb);
void tb_flush(CPUArchState *env);
+void tb_flush_all(void);
void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr);
#if defined(USE_DIRECT_JUMP)
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index f342654..fff2e0a 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -493,6 +493,16 @@ static inline bool cpu_has_work(CPUState *cpu)
bool qemu_cpu_is_self(CPUState *cpu);
/**
+ * qemu_in_vcpu_thread:
+ *
+ * Checks whether the caller is executing on the vCPU thread
+ * of the current vCPU.
+ *
+ * Returns: %true if called from vCPU's thread, %false otherwise.
+ */
+bool qemu_in_vcpu_thread(void);
+
+/**
* qemu_cpu_kick:
* @cpu: The vCPU to kick.
*
diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h
index 3f162a9..86ae556 100644
--- a/include/sysemu/cpus.h
+++ b/include/sysemu/cpus.h
@@ -6,6 +6,7 @@ void qemu_init_cpu_loop(void);
void resume_all_vcpus(void);
void pause_all_vcpus(void);
void cpu_stop_current(void);
+bool all_cpu_threads_idle(void);
void cpu_synchronize_all_states(void);
void cpu_synchronize_all_post_reset(void);
diff --git a/translate-all.c b/translate-all.c
index 11763c6..1e02ae5 100644
--- a/translate-all.c
+++ b/translate-all.c
@@ -812,6 +812,14 @@ void tb_flush(CPUArchState *env1)
tcg_ctx.tb_ctx.tb_flush_count++;
}
+void tb_flush_all(void)
+{
+ CPUState *cpu;
+ for (cpu = first_cpu ; cpu != NULL ; cpu = CPU_NEXT(cpu)) {
+ tb_flush(cpu->env_ptr);
+ }
+}
+
#ifdef DEBUG_TB_CHECK
static void tb_invalidate_check(target_ulong address)
- [Qemu-devel] [RFC PATCH v12 00/21] Deterministic replay core, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 01/21] i386: partial revert of interrupt poll fix, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 02/21] replay: global variables and function stubs, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 03/21] sysemu: system functions for replay,
Pavel Dovgalyuk <=
- [Qemu-devel] [RFC PATCH v12 04/21] replay: internal functions for replay log, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 05/21] replay: introduce mutex to protect the replay log, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 06/21] replay: introduce icount event, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 07/21] cpu-exec: allow temporary disabling icount, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 08/21] cpu: replay instructions sequence, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 09/21] i386: interrupt poll processing, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 10/21] replay: interrupts and exceptions, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 11/21] replay: asynchronous events infrastructure, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 12/21] replay: recording and replaying clock ticks, Pavel Dovgalyuk, 2015/05/05
- [Qemu-devel] [RFC PATCH v12 13/21] replay: shutdown event, Pavel Dovgalyuk, 2015/05/05