Commit:     21f8ca3bf6198bd21e3c4cc820af2ccf753a6ec8
Parent:     5b7f13bd26a0c1d394a1a1f2bb6de5130c3a3843
Author:     Peter Zijlstra <[EMAIL PROTECTED]>
AuthorDate: Thu Jul 19 01:48:53 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu Jul 19 10:04:49 2007 -0700

    fix raw_spinlock_t vs lockdep
    Use the lockdep infrastructure to track lock contention and other lock
    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 
    maximum times are tracked, as well as a total (which together with the 
    of event can give the avg).
    All statistics are done per lock class, per write (exclusive state) and per 
    (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 
    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: Peter Zijlstra <[EMAIL PROTECTED]>
    Acked-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 include/linux/spinlock_types.h    |    4 ++--
 include/linux/spinlock_types_up.h |    9 +--------
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/include/linux/spinlock_types.h b/include/linux/spinlock_types.h
index 210549b..f6a3a95 100644
--- a/include/linux/spinlock_types.h
+++ b/include/linux/spinlock_types.h
@@ -9,14 +9,14 @@
  * Released under the General Public License (GPL).
-#include <linux/lockdep.h>
 #if defined(CONFIG_SMP)
 # include <asm/spinlock_types.h>
 # include <linux/spinlock_types_up.h>
+#include <linux/lockdep.h>
 typedef struct {
        raw_spinlock_t raw_lock;
 #if defined(CONFIG_PREEMPT) && defined(CONFIG_SMP)
diff --git a/include/linux/spinlock_types_up.h 
index 27644af..04135b0 100644
--- a/include/linux/spinlock_types_up.h
+++ b/include/linux/spinlock_types_up.h
@@ -12,14 +12,10 @@
  * Released under the General Public License (GPL).
-#if defined(CONFIG_DEBUG_SPINLOCK) || \
-       defined(CONFIG_DEBUG_LOCK_ALLOC)
 typedef struct {
        volatile unsigned int slock;
-       struct lockdep_map dep_map;
 } raw_spinlock_t;
 #define __RAW_SPIN_LOCK_UNLOCKED { 1 }
@@ -34,9 +30,6 @@ typedef struct { } raw_spinlock_t;
 typedef struct {
        /* no debug version on UP */
-       struct lockdep_map dep_map;
 } raw_rwlock_t;
 #define __RAW_RW_LOCK_UNLOCKED { }
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to