Yuyang Du
01bb6f0af9
locking/lockdep: Change the range of class_idx in held_lock struct
...
held_lock->class_idx is used to point to the class of the held lock. The
index is shifted by 1 to make index 0 mean no class, which results in class
index shifting back and forth but is not worth doing so.
The reason is: (1) there will be no "no-class" held_lock to begin with, and
(2) index 0 seems to be used for error checking, but if something wrong
indeed happened, the index can't be counted on to distinguish it as that
something won't set the class_idx to 0 on purpose to tell us it is wrong.
Therefore, change the index to start from 0. This saves a lot of
back-and-forth shifts and a class slot back to lock_classes.
Since index 0 is now used for lock class, we change the initial chain key to
-1 to avoid key collision, which is due to the fact that __jhash_mix(0, 0, 0) = 0.
Actually, the initial chain key can be any arbitrary value other than 0.
In addition, a bitmap is maintained to keep track of the used lock classes,
and we check the validity of the held lock against that bitmap.
Signed-off-by: Yuyang Du <duyuyang@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: bvanassche@acm.org
Cc: frederic@kernel.org
Cc: ming.lei@redhat.com
Cc: will.deacon@arm.com
Link: https://lkml.kernel.org/r/20190506081939.74287-10-duyuyang@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-06-03 11:55:43 +02:00
..
2019-05-30 11:26:37 -07:00
2019-05-30 11:29:52 -07:00
2019-05-24 17:27:12 +02:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:22 -07:00
2019-05-30 11:29:22 -07:00
2019-05-30 11:26:37 -07:00
2019-05-24 17:36:45 +02:00
2019-05-15 18:21:43 -07:00
2019-05-30 11:29:52 -07:00
2019-05-20 08:21:07 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:29:22 -07:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:29:22 -07:00
2019-05-24 17:27:13 +02:00
2019-05-30 11:29:22 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:40 +02:00
2019-05-14 19:52:52 -07:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:26:41 -07:00
2019-05-15 18:21:43 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:37 -07:00
2019-05-24 17:27:12 +02:00
2019-05-24 17:39:02 +02:00
2019-05-30 11:29:55 -07:00
2019-05-30 11:26:35 -07:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-21 11:28:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-24 17:37:52 +02:00
2019-05-24 17:37:52 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:50 -07:00
2019-05-23 10:25:26 -06:00
2019-05-30 11:26:41 -07:00
2019-05-14 19:52:49 -07:00
2019-05-23 10:25:26 -06:00
2019-05-23 10:25:26 -06:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:29:53 -07:00
2019-06-01 15:51:31 -07:00
2019-05-15 13:21:37 -07:00
2019-05-14 19:52:48 -07:00
2019-05-30 11:25:18 -07:00
2019-05-30 11:26:35 -07:00
2019-05-18 15:52:26 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:39 -07:00
2019-05-14 19:52:50 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:53 -07:00
2019-05-20 15:02:08 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:37 -07:00
2019-05-24 17:37:52 +02:00
2019-05-30 11:29:21 -07:00
2019-05-30 11:29:21 -07:00
2019-05-24 17:37:54 +02:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:41 -07:00
2019-05-21 11:28:40 +02:00
2019-05-15 17:35:54 +01:00
2019-05-24 17:37:53 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:26:32 -07:00
2019-05-25 16:33:36 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:27:12 +02:00
2019-05-15 16:05:47 -07:00
2019-06-01 15:51:32 -07:00
2019-05-30 11:29:53 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:37 -07:00
2019-05-21 11:28:39 +02:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:55 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:52 -07:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:37:52 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:49 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-05-14 19:52:48 -07:00
2019-05-15 23:39:38 +02:00
2019-05-14 19:52:49 -07:00
2019-05-30 11:29:22 -07:00
2019-05-21 11:28:46 +02:00
2019-05-24 17:39:02 +02:00
2019-06-01 15:51:31 -07:00
2019-05-14 19:52:49 -07:00
2019-05-16 15:55:48 -07:00
2019-05-21 11:28:45 +02:00
2019-06-03 11:55:43 +02:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:37:53 +02:00
2019-05-30 11:26:32 -07:00
2019-06-01 15:51:31 -07:00
2019-05-14 09:47:50 -07:00
2019-05-14 09:47:49 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:45 +02:00
2019-05-30 11:26:41 -07:00
2019-05-14 19:52:48 -07:00
2019-05-14 19:52:48 -07:00
2019-05-14 09:47:49 -07:00
2019-05-14 19:52:48 -07:00
2019-05-14 10:55:54 -07:00
2019-05-24 17:27:10 +02:00
2019-05-19 10:58:45 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:41 -07:00
2019-05-19 10:35:20 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-16 10:29:00 -07:00
2019-05-30 11:26:39 -07:00
2019-05-14 09:47:51 -07:00
2019-05-30 11:29:19 -07:00
2019-05-27 10:55:08 +02:00
2019-05-21 10:50:45 +02:00
2019-05-17 10:33:30 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:52 -07:00
2019-05-21 11:28:45 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-24 17:36:45 +02:00
2019-05-14 19:52:48 -07:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:29:54 -07:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-05-14 19:52:51 -07:00
2019-05-30 11:26:41 -07:00
2019-05-14 19:52:48 -07:00
2019-05-14 19:52:48 -07:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:48 -07:00
2019-05-30 11:26:32 -07:00
2019-05-17 10:08:59 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-05-14 19:52:51 -07:00
2019-05-30 11:29:21 -07:00
2019-05-16 09:45:20 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:46 +02:00
2019-05-21 11:28:46 +02:00
2019-05-14 19:52:48 -07:00
2019-05-30 11:29:52 -07:00
2019-05-24 17:39:00 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-16 15:51:55 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:26:35 -07:00
2019-05-24 17:36:45 +02:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-05-27 10:51:45 +02:00
2019-05-30 11:29:22 -07:00
2019-05-21 11:28:46 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-16 16:16:18 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:26:37 -07:00
2019-05-24 17:39:02 +02:00
2019-05-30 11:29:21 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:41 -07:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:41 -07:00
2019-05-24 17:27:13 +02:00
2019-05-24 17:27:13 +02:00
2019-05-24 17:39:00 +02:00
2019-05-18 15:52:26 -07:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:37 -07:00
2019-05-15 17:35:54 +01:00
2019-05-30 11:26:41 -07:00
2019-05-24 17:36:47 +02:00