Messages in this thread | | | From | Waiman Long <> | Subject | [PATCH 0/5] locking/lockdep: Reuse zapped chain_hlocks entries | Date | Thu, 12 Dec 2019 17:35:20 -0500 |
| |
It was found that when running a workload that kept on adding lock classes and then zapping them repetitively, the system will eventually running out of chain_hlocks[] entries even though there were still plenty of other lockdep data buffers available.
[ 4318.443670] BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low! [ 4318.444809] turning off the locking correctness validator.
In order to fix this problem, we have to make chain_hlocks[] entries reusable just like other lockdep arrays. Besides that, the patchset also adds some zapped class and chain_hlocks counters to be tracked by /proc/lockdep_stats. It also fixes leakage in the irq context counters.
Waiman Long (5): locking/lockdep: Track number of zapped classes locking/lockdep: Track leaked chain_hlocks entries locking/lockdep: Track number of zapped lock chains locking/lockdep: Reuse free chain_hlocks entries locking/lockdep: Decrement irq context counters when removing lock chain
kernel/locking/lockdep.c | 201 ++++++++++++++++++++++------- kernel/locking/lockdep_internals.h | 23 +++- kernel/locking/lockdep_proc.c | 17 ++- 3 files changed, 189 insertions(+), 52 deletions(-)
-- 2.18.1
| |