locking/lockdep: Print the right depth for chain key collision
Since chains are separated by IRQ context, so when printing a chain the depth should be consistent with it. Signed-off-by: Yuyang Du <duyuyang@gmail.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: bvanassche@acm.org Cc: frederic@kernel.org Cc: ming.lei@redhat.com Cc: will.deacon@arm.com Link: https://lkml.kernel.org/r/20190506081939.74287-6-duyuyang@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
e7a38f63ba
commit
834494b280
@ -2519,10 +2519,11 @@ print_chain_keys_held_locks(struct task_struct *curr, struct held_lock *hlock_ne
|
||||
struct held_lock *hlock;
|
||||
u64 chain_key = 0;
|
||||
int depth = curr->lockdep_depth;
|
||||
int i;
|
||||
int i = get_first_held_lock(curr, hlock_next);
|
||||
|
||||
printk("depth: %u\n", depth + 1);
|
||||
for (i = get_first_held_lock(curr, hlock_next); i < depth; i++) {
|
||||
printk("depth: %u (irq_context %u)\n", depth - i + 1,
|
||||
hlock_next->irq_context);
|
||||
for (; i < depth; i++) {
|
||||
hlock = curr->held_locks + i;
|
||||
chain_key = print_chain_key_iteration(hlock->class_idx, chain_key);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user