Message ID | 20201014072555.12515-9-chen.zhang@intel.com |
---|---|
State | Superseded |
Headers | show |
Series | COLO project queued patches 20-Oct | expand |
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); > } > >
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); }