Skip to content
  • Peter Zijlstra's avatar
    locking/lockdep: Avoid creating redundant links · ae813308
    Peter Zijlstra authored
    
    
    Two boots + a make defconfig, the first didn't have the redundant bit
    in, the second did:
    
     lock-classes:                         1168       1169 [max: 8191]
     direct dependencies:                  7688       5812 [max: 32768]
     indirect dependencies:               25492      25937
     all direct dependencies:            220113     217512
     dependency chains:                    9005       9008 [max: 65536]
     dependency chain hlocks:             34450      34366 [max: 327680]
     in-hardirq chains:                      55         51
     in-softirq chains:                     371        378
     in-process chains:                    8579       8579
     stack-trace entries:                108073      88474 [max: 524288]
     combined max dependencies:       178738560  169094640
    
     max locking depth:                      15         15
     max bfs queue depth:                   320        329
    
     cyclic checks:                        9123       9190
    
     redundant checks:                                5046
     redundant links:                                 1828
    
     find-mask forwards checks:            2564       2599
     find-mask backwards checks:          39521      39789
    
    So it saves nearly 2k links and a fair chunk of stack-trace entries, but
    as expected, makes no real difference on the indirect dependencies.
    
    At the same time, you see the max BFS depth increase, which is also
    expected, although it could easily be boot variance -- these numbers are
    not entirely stable between boots.
    
    The down side is that the cycles in the graph become larger and thus
    the reports harder to read.
    
    XXX: do we want this as a CONFIG variable, implied by LOCKDEP_SMALL?
    
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Byungchul Park <byungchul.park@lge.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Nikolay Borisov <nborisov@suse.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: akpm@linux-foundation.org
    Cc: boqun.feng@gmail.com
    Cc: iamjoonsoo.kim@lge.com
    Cc: kernel-team@lge.com
    Cc: kirill@shutemov.name
    Cc: npiggin@gmail.com
    Cc: walken@google.com
    Link: http://lkml.kernel.org/r/20170303091338.GH6536@twins.programming.kicks-ass.net
    
    
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    ae813308