aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/lockdep-design.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/lockdep-design.txt')
-rw-r--r--Documentation/lockdep-design.txt22
1 files changed, 22 insertions, 0 deletions
diff --git a/Documentation/lockdep-design.txt b/Documentation/lockdep-design.txt
index 00d93605bfd3..55a7e4fa8cc2 100644
--- a/Documentation/lockdep-design.txt
+++ b/Documentation/lockdep-design.txt
@@ -36,6 +36,28 @@ The validator tracks lock-class usage history into 5 separate state bits:
36 36
37- 'ever used' [ == !unused ] 37- 'ever used' [ == !unused ]
38 38
39When locking rules are violated, these 4 state bits are presented in the
40locking error messages, inside curlies. A contrived example:
41
42 modprobe/2287 is trying to acquire lock:
43 (&sio_locks[i].lock){--..}, at: [<c02867fd>] mutex_lock+0x21/0x24
44
45 but task is already holding lock:
46 (&sio_locks[i].lock){--..}, at: [<c02867fd>] mutex_lock+0x21/0x24
47
48
49The bit position indicates hardirq, softirq, hardirq-read,
50softirq-read respectively, and the character displayed in each
51indicates:
52
53 '.' acquired while irqs enabled
54 '+' acquired in irq context
55 '-' acquired in process context with irqs disabled
56 '?' read-acquired both with irqs enabled and in irq context
57
58Unused mutexes cannot be part of the cause of an error.
59
60
39Single-lock state rules: 61Single-lock state rules:
40------------------------ 62------------------------
41 63