On 01/25/2012 04:01 AM, john stultz wrote:
Why do you want to move loops like the above from jiffies based timeouts to hrtimers?
I'm trying to see whether there are possible benefits in the sense of power management. More hrtimers with larger expire deltas -> more opportunities to coalesce hrtimer interrupts -> less frequency of hrtimer interrupts -> longer idle/suspend/stanby/etc. periods.
Is there an actual need for sub-jiffy granularity in these sorts of timeouts?
I didn't collect a representative statistics among the large set of different drivers, but I believe the answer is 'no' for the most of them. The main reason is described above.
Or is this really just a "getting away from using jiffies" cleanup?
A bit of this too, definitely. Documentation/timers/highres.txt notices 'complete jiffies removal' as something which may take place sometime; at least, I don't have an ideas why to use jiffies in a new code.
Calling get_time() again on each hrtimer_wakeup isn't free.
With this we end up when the irq fires, calling hrtimer_interrupt, which reads the time and goes through the timer list running expired timers, which then runs the sleeper's timer which then reads the time again! Additinoally, this extra overhead is done even no one wants the elapsed time.
Thanks, I'll think about reworking of this.
Dmitry