diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2011-05-20 13:05:15 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2011-05-23 13:59:54 +0200 | 
| commit | ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5 (patch) | |
| tree | c8b370496497b4f96d6a17da906bdd9314e9a090 /include/linux/hrtimer.h | |
| parent | f24444b01bf6c51c300fd3ffc73423383d747882 (diff) | |
| download | olio-linux-3.10-ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5.tar.xz olio-linux-3.10-ab8177bc53e8ae3a3ba6d200ce2c2dae263f7ee5.zip  | |
hrtimers: Avoid touching inactive timer bases
Instead of iterating over all possible timer bases avoid it by marking
the active bases in the cpu base.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'include/linux/hrtimer.h')
| -rw-r--r-- | include/linux/hrtimer.h | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index cc5f5f51db1..771c95802ed 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -143,7 +143,8 @@ struct hrtimer_sleeper {   */  struct hrtimer_clock_base {  	struct hrtimer_cpu_base	*cpu_base; -	clockid_t		index; +	int			index; +	clockid_t		clockid;  	struct timerqueue_head	active;  	ktime_t			resolution;  	ktime_t			(*get_time)(void); @@ -162,7 +163,7 @@ enum  hrtimer_base_type {   * struct hrtimer_cpu_base - the per cpu clock bases   * @lock:		lock protecting the base and associated clock bases   *			and timers - * @clock_base:		array of clock bases for this cpu + * @active_bases:	Bitfield to mark bases with active timers   * @expires_next:	absolute time of the next event which was scheduled   *			via clock_set_next_event()   * @hres_active:	State of high resolution mode @@ -171,9 +172,11 @@ enum  hrtimer_base_type {   * @nr_retries:		Total number of hrtimer interrupt retries   * @nr_hangs:		Total number of hrtimer interrupt hangs   * @max_hang_time:	Maximum time spent in hrtimer_interrupt + * @clock_base:		array of clock bases for this cpu   */  struct hrtimer_cpu_base {  	raw_spinlock_t			lock; +	unsigned long			active_bases;  #ifdef CONFIG_HIGH_RES_TIMERS  	ktime_t				expires_next;  	int				hres_active;  |