Message ID | 20200918092203.20384-3-chen.zhang@intel.com |
---|---|
State | Accepted |
Commit | ec081984f4ae7017e30f58599be54271e1b66d29 |
Headers | show |
Series | Several optimization and bugfix for COLO compare. | expand |
On 9/18/20 5:22 PM, 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. > > 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 7cba573dae..3b72309d08 100644 > --- a/net/colo-compare.c > +++ b/net/colo-compare.c > @@ -905,7 +905,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); > } > > @@ -939,10 +939,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 7cba573dae..3b72309d08 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -905,7 +905,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); } @@ -939,10 +939,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); }