• Yong Zhang's avatar
    lockdep: Reduce stack_trace usage · 4726f2a6
    Yong Zhang authored
    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: default avatarYong Zhang <yong.zhang0@windriver.com>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <20100504065711.GC10784@windriver.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    4726f2a6
lockdep.c 91.2 KB