On Wed, 7 Oct 2009, Marcelo Tosatti wrote: > On Thu, Oct 08, 2009 at 01:17:35AM +0200, Frederic Weisbecker wrote: > What about getting rid of the retry loop, instead? So something > like: > > - run hrtimer callbacks (once) > - while (tick_program_event(expires)) > expires = ktime_add_ns(expires, dev->min_delta_ns) > > This way there's no static tuning involved. And what does that buy us ? We get an timer interrupt right away, so it's not that much different from the retry loop. See below. > Its not clear to me why the loop is there in the first place. We get a timer interrupt and handle the expired timers and find out the timer which is going to expire next to reprogram the hardware. Now when we program that expiry time we find out that the timer is already expired. So instead of programming the hardware to fire an interrupt in the very near future which you would do with your loop above we stay in the interrupt handler and expire the timer and any other by now expired timers right away. The hang check is just there to avoid starving (slow) machines. We do this by spreading the timer interrupts out so that the system can do something else than expiring timers. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html