From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: linux-kernel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>, Bill Huey <billh@gnuppy.monkey.org>,
Jason Baron <jbaron@redhat.com>,
Steven Rostedt <rostedt@goodmis.org>,
Christoph Hellwig <hch@infradead.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: [PATCH 2/5] lockdep: sanitise CONFIG_PROVE_LOCKING
Date: Tue, 29 May 2007 14:52:50 +0200 [thread overview]
Message-ID: <20070529130106.864404378@chello.nl> (raw)
In-Reply-To: 20070529125248.877196281@chello.nl
[-- Attachment #1: lockdep-prove-locking.patch --]
[-- Type: text/plain, Size: 3494 bytes --]
Ensure that all of the lock dependency tracking code is under
CONFIG_PROVE_LOCKING. This allows us to use the held lock tracking code
for other purposes.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jason Baron <jbaron@redhat.com>
---
kernel/lockdep.c | 13 ++++++++++++-
kernel/spinlock.c | 4 ++--
2 files changed, 14 insertions(+), 3 deletions(-)
Index: linux-2.6-git/kernel/lockdep.c
===================================================================
--- linux-2.6-git.orig/kernel/lockdep.c
+++ linux-2.6-git/kernel/lockdep.c
@@ -95,6 +95,7 @@ static int lockdep_initialized;
unsigned long nr_list_entries;
static struct lock_list list_entries[MAX_LOCKDEP_ENTRIES];
+#ifdef CONFIG_PROVE_LOCKING
/*
* Allocate a lockdep entry. (assumes the graph_lock held, returns
* with NULL on failure)
@@ -111,6 +112,7 @@ static struct lock_list *alloc_list_entr
}
return list_entries + nr_list_entries++;
}
+#endif
/*
* All data structures here are protected by the global debug_lock.
@@ -140,7 +142,9 @@ LIST_HEAD(all_lock_classes);
static struct list_head classhash_table[CLASSHASH_SIZE];
unsigned long nr_lock_chains;
+#ifdef CONFIG_PROVE_LOCKING
static struct lock_chain lock_chains[MAX_LOCKDEP_CHAINS];
+#endif
/*
* We put the lock dependency chains into a hash-table as well, to cache
@@ -486,6 +490,7 @@ static void print_lock_dependencies(stru
}
}
+#ifdef CONFIG_PROVE_LOCKING
/*
* Add a new dependency to the head of the list:
*/
@@ -545,6 +550,7 @@ print_circular_bug_entry(struct lock_lis
return 0;
}
+#endif
static void print_kernel_version(void)
{
@@ -553,6 +559,7 @@ static void print_kernel_version(void)
init_utsname()->version);
}
+#ifdef CONFIG_PROVE_LOCKING
/*
* When a circular dependency is detected, print the
* header first:
@@ -643,6 +650,7 @@ check_noncircular(struct lock_class *sou
}
return 1;
}
+#endif
static int very_verbose(struct lock_class *class)
{
@@ -827,6 +835,7 @@ check_usage(struct task_struct *curr, st
#endif
+#ifdef CONFIG_PROVE_LOCKING
static int
print_deadlock_bug(struct task_struct *curr, struct held_lock *prev,
struct held_lock *next)
@@ -1091,7 +1100,7 @@ out_bug:
return 0;
}
-
+#endif
/*
* Is this the address of a static object:
@@ -1311,6 +1320,7 @@ out_unlock_set:
return class;
}
+#ifdef CONFIG_PROVE_LOCKING
/*
* Look up a dependency chain. If the key is not present yet then
* add it and return 1 - in this case the new dependency chain is
@@ -1385,6 +1395,7 @@ cache_hit:
return 1;
}
+#endif
/*
* We are building curr_chain_key incrementally, so double-check
Index: linux-2.6-git/kernel/spinlock.c
===================================================================
--- linux-2.6-git.orig/kernel/spinlock.c
+++ linux-2.6-git/kernel/spinlock.c
@@ -88,7 +88,7 @@ unsigned long __lockfunc _spin_lock_irqs
* _raw_spin_lock_flags() code, because lockdep assumes
* that interrupts are not re-enabled during lock-acquire:
*/
-#ifdef CONFIG_PROVE_LOCKING
+#ifdef CONFIG_LOCKDEP
_raw_spin_lock(lock);
#else
_raw_spin_lock_flags(lock, &flags);
@@ -305,7 +305,7 @@ unsigned long __lockfunc _spin_lock_irqs
* _raw_spin_lock_flags() code, because lockdep assumes
* that interrupts are not re-enabled during lock-acquire:
*/
-#ifdef CONFIG_PROVE_SPIN_LOCKING
+#ifdef CONFIG_LOCKDEP
_raw_spin_lock(lock);
#else
_raw_spin_lock_flags(lock, &flags);
--
next prev parent reply other threads:[~2007-05-29 13:18 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-29 12:52 [PATCH 0/5] lock contention tracking -v3 Peter Zijlstra
2007-05-29 12:52 ` [PATCH 1/5] fix raw_spinlock_t vs lockdep Peter Zijlstra
2007-05-29 12:52 ` Peter Zijlstra [this message]
2007-05-29 13:21 ` [PATCH 2/5] lockdep: sanitise CONFIG_PROVE_LOCKING Christoph Hellwig
2007-05-29 14:16 ` Ingo Molnar
2007-05-30 3:14 ` Andrew Morton
2007-05-29 12:52 ` [PATCH 3/5] lockstat: core infrastructure Peter Zijlstra
2007-05-29 20:28 ` Daniel Walker
2007-05-30 13:03 ` Peter Zijlstra
2007-05-30 13:24 ` Ingo Molnar
2007-05-30 13:40 ` Steven Rostedt
2007-05-30 13:49 ` Ingo Molnar
2007-05-30 17:06 ` Daniel Walker
2007-05-30 17:16 ` Peter Zijlstra
2007-05-30 17:25 ` Daniel Walker
2007-06-01 13:12 ` Ingo Molnar
2007-06-01 15:26 ` Daniel Walker
2007-06-01 15:52 ` Peter Zijlstra
2007-06-01 16:11 ` Daniel Walker
2007-06-01 18:30 ` Ingo Molnar
2007-06-01 19:25 ` Matt Mackall
2007-06-01 19:30 ` Daniel Walker
2007-06-01 18:43 ` Peter Zijlstra
2007-06-01 18:51 ` Ingo Molnar
2007-06-01 19:30 ` Daniel Walker
2007-06-01 18:19 ` Ingo Molnar
2007-06-01 19:30 ` Daniel Walker
2007-06-01 14:25 ` Andi Kleen
2007-05-30 15:20 ` Daniel Walker
2007-05-30 3:43 ` Andrew Morton
2007-05-29 12:52 ` [PATCH 4/5] lockstat: human readability tweaks Peter Zijlstra
2007-05-29 12:52 ` [PATCH 5/5] lockstat: hook into spinlock_t, rwlock_t, rwsem and mutex Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070529130106.864404378@chello.nl \
--to=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=billh@gnuppy.monkey.org \
--cc=hch@infradead.org \
--cc=jbaron@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.