From: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> This patch introduces new QEMU_CLOCK_VIRTUAL_RT clock, which should be used for icount warping. In the next patch, it will be used to avoid a huge icount warp when a virtual machine is stopped for a long time.
Signed-off-by: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- include/qemu/timer.h | 7 +++++++ qemu-timer.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/include/qemu/timer.h b/include/qemu/timer.h index 3dae414..552487c 100644 --- a/include/qemu/timer.h +++ b/include/qemu/timer.h @@ -36,12 +36,19 @@ * is suspended, and it will reflect system time changes the host may * undergo (e.g. due to NTP). The host clock has the same precision as * the virtual clock. + * + * @QEMU_CLOCK_VIRTUAL_RT: realtime clock used for icount warp + * + * Outside icount mode, this clock is the same as @QEMU_CLOCK_VIRTUAL. + * In icount mode, this clock counts nanoseconds while the virtual + * machine is running. */ typedef enum { QEMU_CLOCK_REALTIME = 0, QEMU_CLOCK_VIRTUAL = 1, QEMU_CLOCK_HOST = 2, + QEMU_CLOCK_VIRTUAL_RT = 3, QEMU_CLOCK_MAX } QEMUClockType; diff --git a/qemu-timer.c b/qemu-timer.c index 00a5d35..f4b4b6a 100644 --- a/qemu-timer.c +++ b/qemu-timer.c @@ -566,6 +566,8 @@ int64_t qemu_clock_get_ns(QEMUClockType type) notifier_list_notify(&clock->reset_notifiers, &now); } return now; + case QEMU_CLOCK_VIRTUAL_RT: + return cpu_get_clock(); } } -- 1.8.3.1