timer stats: fix quick check optimization
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 9 Jul 2009 09:24:26 +0000 (11:24 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 10 Jul 2009 17:33:00 +0000 (19:33 +0200)
git commit 507e1231 "timer stats: Optimize by adding quick check to
avoid function calls" added one wrong check so that one unnecessary
function call isn't elimated.

time_stats_account_hrtimer() checks if timer->start_pid isn't
initialized in order to find out if timer_stats_update_stats() should
be called.  However start_pid is initialized with -1 instead of 0, so
that the function call always happens.

Check timer->start_site like in timer_stats_account_timer() to fix
this.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/hrtimer.h

index 54648e625efdff605b043a3aa766be7c2c3581ee..4759917adc71ae371da1cc3a45d46b22a55d4015 100644 (file)
@@ -448,7 +448,7 @@ extern void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
 
 static inline void timer_stats_account_hrtimer(struct hrtimer *timer)
 {
-       if (likely(!timer->start_pid))
+       if (likely(!timer->start_site))
                return;
        timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
                                 timer->function, timer->start_comm, 0);