• Frederic Weisbecker's avatar
    tracing/lockdep: report the time waited for a lock · 2062501a
    Frederic Weisbecker authored
    While trying to optimize the new lock on reiserfs to replace
    the bkl, I find the lock tracing very useful though it lacks
    something important for performance (and latency) instrumentation:
    the time a task waits for a lock.
    
    That's what this patch implements:
    
      bash-4816  [000]   202.652815: lock_contended: lock_contended: &sb->s_type->i_mutex_key
      bash-4816  [000]   202.652819: lock_acquired: &rq->lock (0.000 us)
     <...>-4787  [000]   202.652825: lock_acquired: &rq->lock (0.000 us)
     <...>-4787  [000]   202.652829: lock_acquired: &rq->lock (0.000 us)
      bash-4816  [000]   202.652833: lock_acquired: &sb->s_type->i_mutex_key (16.005 us)
    
    As shown above, the "lock acquired" field is followed by the time
    it has been waiting for the lock. Usually, a lock contended entry
    is followed by a near lock_acquired entry with a non-zero time waited.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    LKML-Reference: <1238975373-15739-1-git-send-email-fweisbec@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    2062501a
lockdep.c 84.9 KB