• Peter Zijlstra's avatar
    fix raw_spinlock_t vs lockdep · 21f8ca3b
    Peter Zijlstra authored
    Use the lockdep infrastructure to track lock contention and other lock
    statistics.
    
    It tracks lock contention events, and the first four unique call-sites that
    encountered contention.
    
    It also measures lock wait-time and hold-time in nanoseconds. The minimum and
    maximum times are tracked, as well as a total (which together with the number
    of event can give the avg).
    
    All statistics are done per lock class, per write (exclusive state) and per read
    (shared state).
    
    The statistics are collected per-cpu, so that the collection overhead is
    minimized via having no global cachemisses.
    
    This new lock statistics feature is independent of the lock dependency checking
    traditionally done by lockdep; it just shares the lock tracking code. It is
    also possible to enable both and runtime disabled either component - thereby
    avoiding the O(n^2) lock chain walks for instance.
    
    This patch:
    
    raw_spinlock_t should not use lockdep (and doesn't) since lockdep itself
    relies on it.
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Acked-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    21f8ca3b
spinlock_types_up.h 720 Bytes