diff options
| -rw-r--r-- | include/linux/hrtimer.h | 43 | ||||
| -rw-r--r-- | kernel/hrtimer.c | 24 | 
2 files changed, 20 insertions, 47 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 040b6796ab4..af634e95871 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -440,47 +440,4 @@ extern u64 ktime_divns(const ktime_t kt, s64 div);  /* Show pending timers: */  extern void sysrq_timer_list_show(void); -/* - * Timer-statistics info: - */ -#ifdef CONFIG_TIMER_STATS - -extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf, -				     void *timerf, char *comm, -				     unsigned int timer_flag); - -static inline void timer_stats_account_hrtimer(struct hrtimer *timer) -{ -	if (likely(!timer_stats_active)) -		return; -	timer_stats_update_stats(timer, timer->start_pid, timer->start_site, -				 timer->function, timer->start_comm, 0); -} - -extern void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer, -						 void *addr); - -static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer) -{ -	__timer_stats_hrtimer_set_start_info(timer, __builtin_return_address(0)); -} - -static inline void timer_stats_hrtimer_clear_start_info(struct hrtimer *timer) -{ -	timer->start_site = NULL; -} -#else -static inline void timer_stats_account_hrtimer(struct hrtimer *timer) -{ -} - -static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer) -{ -} - -static inline void timer_stats_hrtimer_clear_start_info(struct hrtimer *timer) -{ -} -#endif -  #endif diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 931a4d99bc5..d2f9239dc6b 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -756,17 +756,33 @@ static inline void hrtimer_init_timer_hres(struct hrtimer *timer) { }  #endif /* CONFIG_HIGH_RES_TIMERS */ -#ifdef CONFIG_TIMER_STATS -void __timer_stats_hrtimer_set_start_info(struct hrtimer *timer, void *addr) +static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer)  { +#ifdef CONFIG_TIMER_STATS  	if (timer->start_site)  		return; - -	timer->start_site = addr; +	timer->start_site = __builtin_return_address(0);  	memcpy(timer->start_comm, current->comm, TASK_COMM_LEN);  	timer->start_pid = current->pid; +#endif  } + +static inline void timer_stats_hrtimer_clear_start_info(struct hrtimer *timer) +{ +#ifdef CONFIG_TIMER_STATS +	timer->start_site = NULL;  #endif +} + +static inline void timer_stats_account_hrtimer(struct hrtimer *timer) +{ +#ifdef CONFIG_TIMER_STATS +	if (likely(!timer_stats_active)) +		return; +	timer_stats_update_stats(timer, timer->start_pid, timer->start_site, +				 timer->function, timer->start_comm, 0); +#endif +}  /*   * Counterpart to lock_hrtimer_base above:  |