← Back to team overview

linaro-pm-wg team mailing list archive

[Blueprint hrtimer-range-and-clockevent] misc: make possible to use the range field of hrtimer into the clockevent driver

 

Blueprint changed by Vincent Guittot:

Whiteboard changed:
  Hrtimer satisfies a wide range of requirements so optimizing it for powersaving can be an interesting task. Basically the clock event driver exposes the interface to schedule the actual next event interrupt. The time to schedule this interrupt is passed as a parameter by core timers interface after checking the other timers registered along with their ranges. This range field of Hrtimer is a important field in reducing the number of timers firing and thus less wakeus by merging the timers together.
  http://lwn.net/Articles/299590
  
  Some activity identified are,
  
  * Use sleep_range api's instead of normal sleep in drivers and test
  applications(check possibility). More such type of timers will help in
  benchmarkings.
  
  * Use the range field of timers (Along with any synchronization needed)
  in the clock event driver itself before scheduling the next event
  interrupt.
  
- * Benchmark and measure the C state idle wakeups and  no of process
- wakeups.
+ * Benchmark and measure the C state idle wakeups and  no of process wakeups.
+ A good way to test the benefit of adding a range parameter to the clock-event, is to check how this help to synchronize the wake-up/sleep sequence of the cores in the same cluster. The main benefit should be an increase on the cluster power down mode.
+ Let start on each core a thread, which uses hrtimer with range, to simulate periodic activity. The use a range in clock event should help to synchronize the wakeup of cores and to the improve the time spent in cluster off mode
  
  Work Items for backlog:
  [dmitry.antipov] Find and classify the kernel wide timers other then hrtimer subsystem which uses clock event driver to register the h/w timer: TODO
  [dmitry.antipov] To create a preliminary design or even sample implementation of putting the range field in clock event driver: TODO
   [dmitry.antipov] Get the above design reviewed before proceeding further: TODO

-- 
misc: make possible to use the range field of hrtimer into the clockevent driver
https://blueprints.launchpad.net/linaro-power-kernel/+spec/hrtimer-range-and-clockevent