[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v4 08/25] icount: improve enable/disable ticks
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [RFC PATCH v4 08/25] icount: improve enable/disable ticks |
Date: |
Fri, 07 Nov 2014 13:32:12 +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.
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 2ec6d75..15ac3a1 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);
- Re: [Qemu-devel] [RFC PATCH v4 05/25] replay: internal functions for replay log, (continued)
[Qemu-devel] [RFC PATCH v4 08/25] icount: improve enable/disable ticks,
Pavel Dovgalyuk <=
[Qemu-devel] [RFC PATCH v4 09/25] replay: introduce icount event, Pavel Dovgalyuk, 2014/11/07
[Qemu-devel] [RFC PATCH v4 10/25] i386: do not cross the pages boundaries in replay mode, Pavel Dovgalyuk, 2014/11/07
[Qemu-devel] [RFC PATCH v4 11/25] cpu-exec: allow temporary disabling icount, Pavel Dovgalyuk, 2014/11/07