> From: Paolo Bonzini [mailto:pbonz...@redhat.com] > QEMU running with options "-icount,sleep=off -rtc clock=vm" doesn't > execute emulation at maximum possible speed. > Target virtual clock may run faster or slower than realtime clock by N > times, where N value depends on various unrelated conditions (i.e. random > from the user point of view), or possibly the target hangs completely. > Bisection shows commit 281b2201e4 ("icount: remove obsolete warp call", > 2016-03-15) to be the culprit, revert it. > > Suggested-by: Artem Pisarenko <artem.k.pisare...@gmail.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > cpus.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/cpus.c b/cpus.c > index 361678e459..2872e7e37c 100644 > --- a/cpus.c > +++ b/cpus.c > @@ -1224,6 +1224,10 @@ static void qemu_tcg_rr_wait_io_event(CPUState *cpu) > { > while (all_cpu_threads_idle()) { > stop_tcg_kick_timer(); > + > + /* Start accounting real time to the virtual clock if the CPUs > + are idle. */ > + qemu_clock_warp(QEMU_CLOCK_VIRTUAL);
Can't apply, because this function does not exist anymore. > qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex); > } > > -- > 2.17.1 Pavel Dovgalyuk