[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190628091528.17059-6-duyuyang@gmail.com>
Date: Fri, 28 Jun 2019 17:15:03 +0800
From: Yuyang Du <duyuyang@...il.com>
To: peterz@...radead.org, will.deacon@....com, mingo@...nel.org
Cc: bvanassche@....org, ming.lei@...hat.com, frederic@...nel.org,
tglx@...utronix.de, linux-kernel@...r.kernel.org,
longman@...hat.com, paulmck@...ux.vnet.ibm.com,
boqun.feng@...il.com, Yuyang Du <duyuyang@...il.com>
Subject: [PATCH v3 05/30] locking/lockdep: Add lock chain list_head field in struct lock_list and lock_chain
A direct lock dependency, such as L1 -> L2, may be in many lock chains.
These newly added fields in struct lock_list and lock_chain will be used
to associate lock chains to lock dependencies.
No functional change.
Signed-off-by: Yuyang Du <duyuyang@...il.com>
---
include/linux/lockdep.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 151d557..3c6fb63 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -191,6 +191,7 @@ static inline void lockdep_copy_map(struct lockdep_map *to,
*/
struct lock_list {
struct list_head entry;
+ struct list_head chains;
struct lock_class *class;
struct lock_class *links_to;
struct lock_trace trace;
@@ -210,6 +211,7 @@ struct lock_list {
* @depth: the number of held locks in this chain
* @base: the index in chain_hlocks for this chain
* @entry: the collided lock chains in lock_chain hash list
+ * @chain_entry: the link to the next lock_chain in the same dependency
* @chain_key: the hash key of this lock_chain
*/
struct lock_chain {
@@ -219,6 +221,7 @@ struct lock_chain {
base : 24;
/* 4 byte hole */
struct hlist_node entry;
+ struct list_head chain_entry;
u64 chain_key;
};
--
1.8.3.1
Powered by blists - more mailing lists