perf lock: Always check min AND max wait time
authorFrederic Weisbecker <fweisbec@gmail.com>
Fri, 7 May 2010 00:33:42 +0000 (02:33 +0200)
committerFrederic Weisbecker <fweisbec@gmail.com>
Sun, 9 May 2010 11:45:30 +0000 (13:45 +0200)
When a lock is acquired after beeing contended, we update the
wait time statistics for the given lock.
But if the min wait time is updated, we don't check the max wait
time. This is wrong because the first time we update the wait time,
we want to update both min and max wait time.

Before:
Name   acquired  contended total wait (ns)   max wait (ns)   min wait (ns)
key          8          1           21656           0           21656

After:
Name   acquired  contended total wait (ns)   max wait (ns)   min wait (ns)
key          8          1           21656           21656           21656

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
tools/perf/builtin-lock.c

index d7dde9cbbdf4c902943c6932a097356063cd8bd1..e549f4547b98db081a01233e353bb5e155b3b45a 100644 (file)
@@ -496,7 +496,7 @@ report_lock_acquired_event(struct trace_acquired_event *acquired_event,
                ls->wait_time_total += contended_term;
                if (contended_term < ls->wait_time_min)
                        ls->wait_time_min = contended_term;
-               else if (ls->wait_time_max < contended_term)
+               if (ls->wait_time_max < contended_term)
                        ls->wait_time_max = contended_term;
                break;
        case SEQ_STATE_RELEASED: