• Waiman Long's avatar
    locking/qspinlock_stat: Count instances of nested lock slowpaths · 1222109a
    Waiman Long authored
    Queued spinlock supports up to 4 levels of lock slowpath nesting -
    user context, soft IRQ, hard IRQ and NMI. However, we are not sure how
    often the nesting happens.
    
    So add 3 more per-CPU stat counters to track the number of instances where
    nesting index goes to 1, 2 and 3 respectively.
    
    On a dual-socket 64-core 128-thread Zen server, the following were the
    new stat counter values under different circumstances:
    
             State                         slowpath   index1   index2   index3
             -----                         --------   ------   ------   -------
      After bootup                         1,012,150    82       0        0
      After parallel build + perf-top    125,195,009    82       0        0
    
    So the chance of having more than 2 levels of nesting is extremely low.
    
    [ mingo: Minor changelog edits. ]
    Signed-off-by: default avatarWaiman Long <longman@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Link: http://lkml.kernel.org/r/1539697507-28084-1-git-send-email-longman@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    1222109a
qspinlock_stat.h 7.9 KB