diff options
author | Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> | 2015-09-17 19:24:39 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-11-06 10:16:02 +0100 |
commit | efab87cf79077a9624f675fc5fc8f034eaedfe4d (patch) | |
tree | 1c3ee3cfed4094cc350306224238e36953c8b307 /main-loop.c | |
parent | b60c48a7019614902f2debe4d4181ec8cfa60e0d (diff) | |
download | qemu-efab87cf79077a9624f675fc5fc8f034eaedfe4d.zip |
icount: improve counting for record/replay
icount_warp_rt function is called by qemu_clock_warp and as
callback of icount_warp timer. This patch adds call to qemu_clock_warp
into main_loop_wait function, because icount warp may be missed
in record/replay mode, when CPU is sleeping.
This patch also disables of calling this function by timer, because
it is not needed after making modifications of main_loop_wait.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Message-Id: <20150917162439.8676.38290.stgit@PASHA-ISP.def.inno>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Diffstat (limited to 'main-loop.c')
-rw-r--r-- | main-loop.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/main-loop.c b/main-loop.c index db600a37f1..df28670606 100644 --- a/main-loop.c +++ b/main-loop.c @@ -506,6 +506,9 @@ int main_loop_wait(int nonblocking) slirp_pollfds_poll(gpollfds, (ret < 0)); #endif + /* CPU thread can infinitely wait for event after + missing the warp */ + qemu_clock_warp(QEMU_CLOCK_VIRTUAL); qemu_clock_run_all_timers(); return ret; |