On 19/12/19 13:46, Pavel Dovgalyuk wrote: > Record/replay can stall when there are no virtual devices that generate > events - it just uses all the time for vCPU thread. Therefore main loop > has to wait too much for the vCPU thread, because they are synchronized > in rr mode. > This patch does not let creating too long vCPU executions without > interrupting to main loop. It checks realtime timers that always exits > to control user input. > > Signed-off-by: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> > --- > cpus.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/cpus.c b/cpus.c > index 63bda152f5..7dba4fa414 100644 > --- a/cpus.c > +++ b/cpus.c > @@ -1388,6 +1388,10 @@ static int64_t tcg_get_icount_limit(void) > */ > deadline = qemu_clock_deadline_ns_all(QEMU_CLOCK_VIRTUAL, > QEMU_TIMER_ATTR_ALL); > + /* Check realtime timers, because they help with input processing */ > + deadline = qemu_soonest_timeout(deadline, > + qemu_clock_deadline_ns_all(QEMU_CLOCK_REALTIME, > + QEMU_TIMER_ATTR_ALL)); > > /* Maintain prior (possibly buggy) behaviour where if no deadline > * was set (as there is no QEMU_CLOCK_VIRTUAL timer) or it is more > than >
Queued, thanks. Paolo