[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 17/33] cpus: re-factor out handle_icount_deadline
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v5 17/33] cpus: re-factor out handle_icount_deadline |
Date: |
Thu, 27 Oct 2016 16:10:14 +0100 |
In preparation for adding a MTTCG thread we re-factor out a bit of what
will be common code to handle the QEMU_CLOCK_VIRTUAL expiration.
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
---
v4
- split from exit_request patch
---
cpus.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/cpus.c b/cpus.c
index aca2a2e..6367772 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1172,6 +1172,18 @@ static int64_t tcg_get_icount_limit(void)
}
}
+static void handle_icount_deadline(void)
+{
+ if (use_icount) {
+ int64_t deadline =
+ qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL);
+
+ if (deadline == 0) {
+ qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
+ }
+ }
+}
+
static int tcg_cpu_exec(CPUState *cpu)
{
int ret;
@@ -1310,13 +1322,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
/* Pairs with smp_wmb in qemu_cpu_kick. */
atomic_mb_set(&exit_request, 0);
- if (use_icount) {
- int64_t deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL);
+ handle_icount_deadline();
- if (deadline == 0) {
- qemu_clock_notify(QEMU_CLOCK_VIRTUAL);
- }
- }
qemu_tcg_wait_io_event(QTAILQ_FIRST(&cpus));
deal_with_unplugged_cpus();
}
--
2.10.1
- [Qemu-devel] [PATCH v5 05/33] docs: new design document multi-thread-tcg.txt (DRAFTING), (continued)
- [Qemu-devel] [PATCH v5 05/33] docs: new design document multi-thread-tcg.txt (DRAFTING), Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 07/33] linux-user/elfload: ensure mmap_lock() held while setting up, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 08/33] translate-all: Add assert_(memory|tb)_lock annotations, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 10/33] target-arm/arm-powerctl: wake up sleeping CPUs, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 03/33] translate-all: add DEBUG_LOCKING asserts, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 09/33] tcg: protect translation related stuff with tb_lock., Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 12/33] tcg: cpus rm tcg_exec_all(), Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 14/33] tcg: add kick timer for single-threaded vCPU emulation, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 13/33] tcg: add options for enabling MTTCG, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 17/33] cpus: re-factor out handle_icount_deadline,
Alex Bennée <=
- [Qemu-devel] [PATCH v5 22/33] atomic: introduce cmpxchg_bool, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 16/33] tcg: drop global lock during TCG code execution, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 18/33] tcg: remove global exit_request, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 15/33] tcg: rename tcg_current_cpu to tcg_current_rr_cpu, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 06/33] tcg: comment on which functions have to be called with tb_lock held, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 11/33] tcg: move tcg_exec_all and helpers above thread fn, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 27/33] cputlb: atomically update tlb fields used by tlb_reset_dirty, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 24/33] cputlb: add assert_cpu_is_self checks, Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 25/33] cputlb: introduce tlb_flush_* async work., Alex Bennée, 2016/10/27
- [Qemu-devel] [PATCH v5 31/33] target-arm: ensure BQL taken for ARM_CP_IO register access, Alex Bennée, 2016/10/27