[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v3 26/49] vga: do not use virtual clock for blin
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [RFC PATCH v3 26/49] vga: do not use virtual clock for blinking cursor |
Date: |
Thu, 31 Jul 2014 16:55:54 +0400 |
User-agent: |
StGit/0.16 |
This patch changes virtual clock to realtime one in vga_draw_text and
vga_update_display functions. Display update process depends on realtime
clock. If we read virtual clock there, virtual machine becomes
non-deterministic, because every read to virtual clock is written to the
replay log.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
---
hw/display/vga.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 4b089a3..0439586 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1304,7 +1304,7 @@ static void vga_draw_text(VGACommonState *s, int
full_update)
uint32_t *ch_attr_ptr;
vga_draw_glyph8_func *vga_draw_glyph8;
vga_draw_glyph9_func *vga_draw_glyph9;
- int64_t now = qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL);
+ int64_t now = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
/* compute font data address (in plane 2) */
v = s->sr[VGA_SEQ_CHARACTER_MAP];
@@ -1385,7 +1385,7 @@ static void vga_draw_text(VGACommonState *s, int
full_update)
s->cursor_end = s->cr[VGA_CRTC_CURSOR_END];
}
cursor_ptr = s->vram_ptr + (s->start_addr + cursor_offset) * 4;
- if (now >= s->cursor_blink_time) {
+ if (now >= s->cursor_blink_time && runstate_is_running()) {
s->cursor_blink_time = now + VGA_TEXT_CURSOR_PERIOD_MS / 2;
s->cursor_visible_phase = !s->cursor_visible_phase;
}
@@ -1906,7 +1906,7 @@ static void vga_update_display(void *opaque)
}
if (graphic_mode != s->graphic_mode) {
s->graphic_mode = graphic_mode;
- s->cursor_blink_time = qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL);
+ s->cursor_blink_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
full_update = 1;
}
switch(graphic_mode) {
- [Qemu-devel] [RFC PATCH v3 16/49] target-i386: update fp status fix, (continued)
- [Qemu-devel] [RFC PATCH v3 16/49] target-i386: update fp status fix, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 17/49] migration: add vmstate for int8 and char arrays, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 18/49] replay: global variables and function stubs, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 19/49] block: add suffix parameter to bdrv_open functions, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 20/49] sysemu: system functions for replay, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 21/49] replay: internal functions for replay log, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 22/49] cpu: invent instruction count for accurate replay, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 23/49] target-arm: instructions counting code for replay, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 24/49] target-i386: instructions counting code for replay, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 25/49] replay: interrupts and exceptions, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 26/49] vga: do not use virtual clock for blinking cursor,
Pavel Dovgalyuk <=
- [Qemu-devel] [RFC PATCH v3 27/49] replay: asynchronous events infrastructure, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 28/49] replay: recording and replaying clock ticks, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 29/49] replay: recording and replaying different timers, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 30/49] replay: shutdown event, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 31/49] replay: checkpoints, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 32/49] vmclock: add virtual clock based on replay icount, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 33/49] replay: bottom halves, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 34/49] replay: replay aio requests, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 35/49] replay: thread pool, Pavel Dovgalyuk, 2014/07/31
- [Qemu-devel] [RFC PATCH v3 36/49] pl031: vmstate in replay mode, Pavel Dovgalyuk, 2014/07/31