On 04/06/2018 10:38 PM, Peter Maydell wrote: > When we run in TCG icount mode, we calculate the number of instructions > to execute using tcg_get_icount_limit(), which ensures that we stop > execution at the next timer deadline. However there is a bug where > currently we do not recalculate that limit if the guest reprograms > a timer so that the next deadline moves closer, and so we will > continue execution until the original limit and fire the timer > later than we should. > > Fix this bug in qemu_timer_notify_cb(): if we are currently running > a VCPU in icount mode, we simply need to kick it out of the main > loop and back to tcg_cpu_exec(), where it will recalculate the > icount limit. If we are not currently running a VCPU, then we > retain the existing logic for waking up a halted CPU. > > Cc: qemu-sta...@nongnu.org > Fixes: https://bugs.launchpad.net/qemu/+bug/1754038 > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > Thanks to Paolo for tracking down which function needed fixing!
Seconded. Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~