On Mon, Jan 04, 2010 at 02:24:53PM -0600, Anthony Liguori wrote: > On 12/21/2009 02:09 AM, Paolo Bonzini wrote: >> Make the timer subsystem register its own bottom half instead of >> placing the bottom half code in the heart of the main loop. To >> test if an alarm timer is pending, just check if the bottom half is >> scheduled. >> >> Signed-off-by: Paolo Bonzini<pbonz...@redhat.com> > > I'm not a huge fan of this for a couple reasons. The first is that it > introduces a subtle semantic change. Previously, timers always ran > before bottom halves whereas after this change, timers may run after > some bottoms halves but before others. While this should be okay in > principle, in practice, I'm sure it'll introduce regressions. I'd be > very surprised if cris wasn't affected by this. > > But more importantly, I think timer dispatch needs to be part of the > select loop. malc has a git tree that replaces host alarm timers with > select() timeouts.
Where is that tree? IMO we need that, I am not sure all code is as signal-safe as it should be. At least crashes that I saw with winxp install seem to be related to signal handling. > This has a lot of really nice properties like it > eliminates the need for signals and EINTR handling. A move like this > would likely make this more difficult. > > I think the opposite sort of move makes more sense. Treating bottom > halves as 0-duration timer events. Unfortunately, things like cris do > not handle this sort of change very well. > > Regards, > > Anthony Liguori >