Skip to content

Commit

Permalink
[PATCH] lockdep: improve verbose messages
Browse files Browse the repository at this point in the history
Make verbose lockdep messages (off by default) more informative by printing
out the hash chain key.  (this patch was what helped me catch the earlier
lockdep hash-collision bug)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Ingo Molnar authored and Linus Torvalds committed Dec 13, 2006
1 parent a664089 commit 81fc685
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions kernel/lockdep.c
Original file line number Diff line number Diff line change
Expand Up @@ -1264,7 +1264,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
* add it and return 0 - in this case the new dependency chain is
* validated. If the key is already hashed, return 1.
*/
static inline int lookup_chain_cache(u64 chain_key)
static inline int lookup_chain_cache(u64 chain_key, struct lock_class *class)
{
struct list_head *hash_head = chainhashentry(chain_key);
struct lock_chain *chain;
Expand All @@ -1286,9 +1286,13 @@ static inline int lookup_chain_cache(u64 chain_key)
__raw_spin_lock(&hash_lock);
return 1;
#endif
if (very_verbose(class))
printk("\nhash chain already cached, key: %016Lx tail class: [%p] %s\n", chain_key, class->key, class->name);
return 0;
}
}
if (very_verbose(class))
printk("\nnew hash chain, key: %016Lx tail class: [%p] %s\n", chain_key, class->key, class->name);
/*
* Allocate a new chain entry from the static array, and add
* it to the hash:
Expand Down Expand Up @@ -2139,7 +2143,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
* (If lookup_chain_cache() returns with 1 it acquires
* hash_lock for us)
*/
if (!trylock && (check == 2) && lookup_chain_cache(chain_key)) {
if (!trylock && (check == 2) && lookup_chain_cache(chain_key, class)) {
/*
* Check whether last held lock:
*
Expand Down

0 comments on commit 81fc685

Please sign in to comment.