On 10/14/20 9:25 AM, Zhang Chen wrote:
> From: Zhang Chen <chen.zhang@intel.com>
>
> The virtual clock only runs during the emulation. It stops
> when the virtual machine is stopped.
> The host clock should be used for device models that emulate accurate
> real time sources. It will continue to run when the virtual machine
> is suspended. COLO need to know the host time here.
>
Please add:
Fixes: dd321ecfc2e ("colo-compare: Use IOThread to Check old packet
regularly and Process packets of the primary")
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Reported-by: Derek Su <dereksu@qnap.com>
> Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> Reviewed-by: Li Zhijian <lizhijian@cn.fujitsu.com>
> ---
> net/colo-compare.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/net/colo-compare.c b/net/colo-compare.c
> index f4814c5f09..61c95fe7e9 100644
> --- a/net/colo-compare.c
> +++ b/net/colo-compare.c
> @@ -899,7 +899,7 @@ static void check_old_packet_regular(void *opaque)
>
> /* if have old packet we will notify checkpoint */
> colo_old_packet_check(s);
> - timer_mod(s->packet_check_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) +
> + timer_mod(s->packet_check_timer, qemu_clock_get_ms(QEMU_CLOCK_HOST) +
> s->expired_scan_cycle);
> }
>
> @@ -933,10 +933,10 @@ static void colo_compare_timer_init(CompareState *s)
> {
> AioContext *ctx = iothread_get_aio_context(s->iothread);
>
> - s->packet_check_timer = aio_timer_new(ctx, QEMU_CLOCK_VIRTUAL,
> + s->packet_check_timer = aio_timer_new(ctx, QEMU_CLOCK_HOST,
> SCALE_MS, check_old_packet_regular,
> s);
> - timer_mod(s->packet_check_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) +
> + timer_mod(s->packet_check_timer, qemu_clock_get_ms(QEMU_CLOCK_HOST) +
> s->expired_scan_cycle);
> }
>
>