lockdep: Reduce stack_trace usage
authorYong Zhang <yong.zhang@windriver.com>
Tue, 4 May 2010 06:16:48 +0000 (14:16 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 7 May 2010 09:27:26 +0000 (11:27 +0200)
commit4726f2a617ebd868a4fdeb5679613b897e5f1676
treec9eea44c66f98123802d99aad5b3cce93626eda8
parent54d47a2be5e7f928fb77b2f5a0761f6bd3c9dbff
lockdep: Reduce stack_trace usage

When calling check_prevs_add(), if all validations passed
add_lock_to_list() will add new lock to dependency tree and
alloc stack_trace for each list_entry.

But at this time, we are always on the same stack, so stack_trace
for each list_entry has the same value. This is redundant and eats
up lots of memory which could lead to warning on low
MAX_STACK_TRACE_ENTRIES.

Use one copy of stack_trace instead.

V2: As suggested by Peter Zijlstra, move save_trace() from
    check_prevs_add() to check_prev_add().
    Add tracking for trylock dependence which is also redundant.

Signed-off-by: Yong Zhang <yong.zhang0@windriver.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20100504065711.GC10784@windriver.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/lockdep.c