Messages in this thread Patch in this message |  | | From | greearb@candelat ... | Subject | [PATCH] lockdep: Print more info when MAX_LOCK_DEPTH is exceeded. | Date | Wed, 6 Feb 2013 10:56:19 -0800 |
| |
From: Ben Greear <greearb@candelatech.com>
This helps debug cases where a lock is acquired over and over without being released.
Signed-off-by: Ben Greear <greearb@candelatech.com> --- kernel/lockdep.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 7981e5b..7e76b69 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c @@ -3189,8 +3189,12 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass, return 0; #endif if (unlikely(curr->lockdep_depth >= MAX_LOCK_DEPTH)) { + debug_show_all_locks(); + lockdep_print_held_locks(current); + debug_locks_off(); - printk("BUG: MAX_LOCK_DEPTH too low!\n"); + printk("BUG: MAX_LOCK_DEPTH too low, depth: %i max: %lu!\n", + curr->lockdep_depth, MAX_LOCK_DEPTH); printk("turning off the locking correctness validator.\n"); dump_stack(); return 0; -- 1.7.3.4
|  |