Thread (49 messages) 49 messages, 5 authors, 2016-11-08

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

From: Nilay Vaish <hidden>
Date: 2016-09-15 15:34:36
Also in: lkml

On 13 September 2016 at 04:45, Byungchul Park [off-list ref] wrote:
quoted hunk ↗ jump to hunk
@@ -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

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help