Re: [PATCH v3 03/15] lockdep: Refactor lookup_chain_cache()

From: Nilay Vaish
Date: Thu Sep 15 2016 - 11:34:39 EST


On 13 September 2016 at 04:45, Byungchul Park <byungchul.park@xxxxxxx> wrote:
> @@ -2215,6 +2178,75 @@ cache_hit:
> return 1;
> }
>
> +/*
> + * Look up a dependency chain.
> + */
> +static inline struct lock_chain *lookup_chain_cache(u64 chain_key)
> +{
> + struct hlist_head *hash_head = chainhashentry(chain_key);
> + struct lock_chain *chain;
> +
> + /*
> + * We can walk it lock-free, because entries only get added
> + * to the hash:
> + */
> + hlist_for_each_entry_rcu(chain, hash_head, entry) {
> + if (chain->chain_key == chain_key) {
> + debug_atomic_inc(chain_lookup_hits);
> + return chain;
> + }
> + }
> + return NULL;
> +}

Byungchul, do you think we should increment chain_lookup_misses
before returning NULL from the above function?

--
Nilay