Messages in this thread | | | Subject | Re: [PATCH v2 0/6] locking/lockdep: Reuse zapped chain_hlocks entries | From | Waiman Long <> | Date | Mon, 6 Jan 2020 10:54:24 -0500 |
| |
On 12/16/19 10:15 AM, Waiman Long wrote: > v2: > - Revamp the chain_hlocks reuse patch to store the freed chain_hlocks > information in the chain_hlocks entries themselves avoiding the > need of a separate set of tracking structures. This, however, > requires a minimum allocation size of at least 2. Thanks to PeterZ > for his review and inspiring this change. > - Remove the leakage counter as it is no longer applicable. > - Add patch 6 to make the output of /proc/lockdep_chains more readable. > > It was found that when running a workload that kept on adding lock > classes and then zapping them repetitively, the system will eventually > run 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 > and makes the output of /proc/lockdep_chains more readable. > > Waiman Long (6): > locking/lockdep: Track number of zapped classes > locking/lockdep: Throw away all lock chains with zapped class > locking/lockdep: Track number of zapped lock chains > locking/lockdep: Reuse freed chain_hlocks entries > locking/lockdep: Decrement irq context counters when removing lock > chain > locking/lockdep: Display irq_context names in /proc/lockdep_chains > > kernel/locking/lockdep.c | 307 +++++++++++++++++++++++------ > kernel/locking/lockdep_internals.h | 14 +- > kernel/locking/lockdep_proc.c | 26 ++- > 3 files changed, 282 insertions(+), 65 deletions(-) > Ping! Any comments or suggestion for further improvement?
Cheers, Longman
| |