Messages in this thread | | | Date | Tue, 12 Aug 2008 22:55:36 +0100 | From | Alan Cox <> | Subject | Re: [RFC] Imprecise timers. |
| |
> Instead a rounded timer after 5 seconds still ensures atleast 1s idle time on > the CPU without the overhead. > > There can be many users who really don't care about the deadline or can happliy > use rounded timers or deferrable timers. Say garbage collectors, cache_reap > and friends, ondemand governor, vga cursor blinking comes to my mind.
The cursor really really needs to be steady to within a few frames or you will notice it. Not using blinking cursors would of course be even better (or sneaking the blink into the graphics hardware ;))
Your API also needs to use some kind of internal time concept that can be shared between virtual machines because the end product of this done right has to be to push timer scheduling at the basic level into the hypervisor because it needs to merge timer events across guests. Anything less and your get screwed the moment you load 50 guests on your box.
The simplest I can see to do it would be to make init_timer set a timer field for tolerance to zero. Existing stuff would just work and new drivers can set timer.tolerance = foo;
powertop can then be use to hit the key wakeup causes in the existing code
Alan
| |