[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v5 08/31] icount: improve enable/disable ticks
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [RFC PATCH v5 08/31] icount: improve enable/disable ticks |
Date: |
Wed, 26 Nov 2014 13:39:31 +0300 |
User-agent: |
StGit/0.16 |
This patch eliminates call of the cpu_get_real_ticks while enabling
or disabling the virtual timer in icount mode. These calls are used
for cpu_ticks_offset which is not needed in this mode.
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Pavel Dovgalyuk <address@hidden>
---
cpus.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/cpus.c b/cpus.c
index 492e19a..43ae7fc 100644
--- a/cpus.c
+++ b/cpus.c
@@ -267,8 +267,10 @@ void cpu_enable_ticks(void)
/* Here, the really thing protected by seqlock is cpu_clock_offset. */
seqlock_write_lock(&timers_state.vm_clock_seqlock);
if (!timers_state.cpu_ticks_enabled) {
- timers_state.cpu_ticks_offset -= cpu_get_real_ticks();
- timers_state.cpu_clock_offset -= get_clock();
+ if (!use_icount) {
+ timers_state.cpu_ticks_offset -= cpu_get_real_ticks();
+ timers_state.cpu_clock_offset -= get_clock();
+ }
timers_state.cpu_ticks_enabled = 1;
}
seqlock_write_unlock(&timers_state.vm_clock_seqlock);
@@ -283,8 +285,10 @@ void cpu_disable_ticks(void)
/* Here, the really thing protected by seqlock is cpu_clock_offset. */
seqlock_write_lock(&timers_state.vm_clock_seqlock);
if (timers_state.cpu_ticks_enabled) {
- timers_state.cpu_ticks_offset += cpu_get_real_ticks();
- timers_state.cpu_clock_offset = cpu_get_clock_locked();
+ if (!use_icount) {
+ timers_state.cpu_ticks_offset += cpu_get_real_ticks();
+ timers_state.cpu_clock_offset = cpu_get_clock_locked();
+ }
timers_state.cpu_ticks_enabled = 0;
}
seqlock_write_unlock(&timers_state.vm_clock_seqlock);
- [Qemu-devel] [RFC PATCH v5 00/31] Deterministic replay and reverse execution, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 01/31] cpu-exec: fix cpu_exec_nocache, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 02/31] acpi: accurate overflow check, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 03/31] replay: global variables and function stubs, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 04/31] sysemu: system functions for replay, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 05/31] replay: internal functions for replay log, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 06/31] cpu-exec: reset exception_index correctly, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 07/31] icount: implement icount requesting, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 08/31] icount: improve enable/disable ticks,
Pavel Dovgalyuk <=
- [Qemu-devel] [RFC PATCH v5 09/31] replay: introduce icount event, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 10/31] i386: do not cross the pages boundaries in replay mode, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 11/31] From 7abf2f72777958d395cfd01d97fe707cc06152b5 Mon Sep 17 00:00:00 2001, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 12/31] From 185a3a47d08857a66332ae862b372a153ce92bb9 Mon Sep 17 00:00:00 2001, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 13/31] From a0cb9e80ba0de409b5ad556109a1c71ce4d8ce19 Mon Sep 17 00:00:00 2001, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 14/31] From 04bbd21134dd2c6b7309a7f5f2b780aae2757003 Mon Sep 17 00:00:00 2001, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 15/31] cpu-exec: allow temporary disabling icount, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 16/31] cpu-exec: invalidate nocache translation if they are interrupted, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 17/31] replay: interrupts and exceptions, Pavel Dovgalyuk, 2014/11/26
- [Qemu-devel] [RFC PATCH v5 18/31] replay: asynchronous events infrastructure, Pavel Dovgalyuk, 2014/11/26