[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 44/79] ui: fix virtual timers
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 44/79] ui: fix virtual timers |
Date: |
Sun, 30 Sep 2018 10:12:42 +0200 |
From: Pavel Dovgalyuk <address@hidden>
UI uses timers based on virtual clock for managing key queue.
This is incorrect because this service is not related to the guest state,
and its events should not be recorded and replayed. But these timers should
stop when the guest is not executing.
This patch changes using virtual clock to the new virtual_ext clock,
which runs as virtual clock, but its timers are not saved to the log.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
ui/input.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ui/input.c b/ui/input.c
index 51b1019..dd7f6d7 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -271,7 +271,7 @@ static void qemu_input_queue_process(void *opaque)
item = QTAILQ_FIRST(queue);
switch (item->type) {
case QEMU_INPUT_QUEUE_DELAY:
- timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)
+ timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL_EXT)
+ item->delay_ms);
return;
case QEMU_INPUT_QUEUE_EVENT:
@@ -301,7 +301,7 @@ static void qemu_input_queue_delay(struct
QemuInputEventQueueHead *queue,
queue_count++;
if (start_timer) {
- timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)
+ timer_mod(item->timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL_EXT)
+ item->delay_ms);
}
}
@@ -448,8 +448,8 @@ void qemu_input_event_send_key_delay(uint32_t delay_ms)
}
if (!kbd_timer) {
- kbd_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, qemu_input_queue_process,
- &kbd_queue);
+ kbd_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL_EXT,
+ qemu_input_queue_process, &kbd_queue);
}
if (queue_count < queue_limit) {
qemu_input_queue_delay(&kbd_queue, kbd_timer,
--
1.8.3.1
- [Qemu-devel] [PULL 38/79] replay: wake up vCPU when replaying, (continued)
- [Qemu-devel] [PULL 38/79] replay: wake up vCPU when replaying, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 42/79] timer: introduce new virtual clock, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 37/79] configure: enable mttcg for i386 and x86_64, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 39/79] replay: flush events when exiting, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 40/79] translator: fix breakpoint processing, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 27/79] target/i386: move cpu_T0 to DisasContext, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 41/79] replay: allow loading any snapshots before recording, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 43/79] slirp: fix ipv6 timers, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 36/79] target/i386: move x86_64_hregs to DisasContext, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 45/79] fw_cfg_mem: add read memory region callback, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 44/79] ui: fix virtual timers,
Paolo Bonzini <=
- [Qemu-devel] [PULL 46/79] hw: debugexit: add read callback, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 48/79] hw: hyperv_testdev: add read callback, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 54/79] char-pty: remove unnecessary #ifdef, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 51/79] Revert "chardev: tcp: postpone async connection setup", Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 49/79] memory: cleanup side effects of memory_region_init_foo() on failure, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 52/79] char-socket: update all ioc handlers when changing context, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 53/79] test-char: add socket reconnect test, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 59/79] dump: move Windows dump structures definitions, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 61/79] MAINTAINERS: add myself as elf2dmp maintainer, Paolo Bonzini, 2018/09/30
- [Qemu-devel] [PULL 58/79] hw: edu: replace device name with macro, Paolo Bonzini, 2018/09/30