On Sunday 16 December 2007, Anders wrote: > Paul Brook wrote: > >> Redundant timer rearm optimisation by Anders Melchiorsen. > > > > I think this is incorrect. > > > > When a timer is modified, we need to rearm the host timer immediately. We > > can not wait for the old timer to fire, or for execution to fall back to > > the main_loop_wait. Consider the case where the guest adds a timer > > interrupt and immediately enters a tight loop - Quite a common operation > > when calibrating a software delay loop. The timer won't be rearmed until > > some other event occurs. It the system is otherwise quiescent and you're > > not using SDL output it may never occur. > > Hi Paul, > > I am certainly open to it not being correct, but currently I fail to see > how it changes the scenario that you mention. The rearming is moved away > from qemu_run_timers(), not qemu_mod_timer(). Can you elaborate?
It's possible that this code has always been broken. You changes make it much more obviously so. > There was a previous patch to remove the rearming when timers are modified, > > http://cvs.savannah.gnu.org/viewvc/qemu/vl.c?root=qemu&view=log#rev1.345 I think this this is unrealted.