Messages in this thread Patch in this message |  | | Date | Tue, 4 Feb 2020 16:42:36 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v5 6/7] locking/lockdep: Reuse freed chain_hlocks entries |
| |
On Mon, Feb 03, 2020 at 11:41:46AM -0500, Waiman Long wrote: > + /* > + * We require a minimum of 2 (u16) entries to encode a freelist > + * 'pointer'. > + */ > + req = max(req, 2);
Would something simple like the below not avoid that whole 1 entry 'chain' nonsense?
It boots and passes the selftests, so it must be perfect :-)
--- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -3163,7 +3163,7 @@ static int validate_chain(struct task_st * (If lookup_chain_cache_add() return with 1 it acquires * graph_lock for us) */ - if (!hlock->trylock && hlock->check && + if (!chain_head && !hlock->trylock && hlock->check && lookup_chain_cache_add(curr, hlock, chain_key)) { /* * Check whether last held lock:
|  |