blob: baa14137f47354e7d60ebd798b3887156a118340 [file] [log] [blame]
Thomas Gleixner61a87122006-06-27 02:54:56 -07001#
2# rt-mutex test
3#
4# Op: C(ommand)/T(est)/W(ait)
5# | opcode
6# | | threadid: 0-7
7# | | | opcode argument
8# | | | |
9# C: lock: 0: 0
10#
11# Commands
12#
13# opcode opcode argument
14# schedother nice value
15# schedfifo priority
16# lock lock nr (0-7)
17# locknowait lock nr (0-7)
18# lockint lock nr (0-7)
19# lockintnowait lock nr (0-7)
20# lockcont lock nr (0-7)
21# unlock lock nr (0-7)
22# lockbkl lock nr (0-7)
23# unlockbkl lock nr (0-7)
24# signal thread to signal (0-7)
25# reset 0
26# resetevent 0
27#
28# Tests / Wait
29#
30# opcode opcode argument
31#
32# prioeq priority
33# priolt priority
34# priogt priority
35# nprioeq normal priority
36# npriolt normal priority
37# npriogt normal priority
38# locked lock nr (0-7)
39# blocked lock nr (0-7)
40# blockedwake lock nr (0-7)
41# unlocked lock nr (0-7)
42# lockedbkl dont care
43# blockedbkl dont care
44# unlockedbkl dont care
45# opcodeeq command opcode or number
46# opcodelt number
47# opcodegt number
48# eventeq number
49# eventgt number
50# eventlt number
51
52#
53# 4 threads 2 lock PI
54#
55C: resetevent: 0: 0
56W: opcodeeq: 0: 0
57
58# Set schedulers
59C: schedother: 0: 0
Thomas Gleixner61a87122006-06-27 02:54:56 -070060C: schedother: 1: 0
Thomas Gleixner61a87122006-06-27 02:54:56 -070061C: schedfifo: 2: 82
Thomas Gleixner61a87122006-06-27 02:54:56 -070062C: schedfifo: 3: 83
Thomas Gleixner61a87122006-06-27 02:54:56 -070063
64# T0 lock L0
65C: locknowait: 0: 0
66W: locked: 0: 0
67
68# T1 lock L1
69C: locknowait: 1: 1
70W: locked: 1: 1
71
72# T3 lock L0
73C: lockintnowait: 3: 0
74W: blocked: 3: 0
75T: prioeq: 0: 83
76
77# T0 lock L1
78C: lock: 0: 1
79W: blocked: 0: 1
80T: prioeq: 1: 83
81
82# T1 unlock L1
83C: unlock: 1: 1
84
85# Wait until T0 is in the wakeup code
86W: blockedwake: 0: 1
87
88# Verify that T1 is unboosted
89W: unlocked: 1: 1
90T: priolt: 1: 1
91
92# T2 lock L1 (T0 is boosted and pending owner !)
93C: locknowait: 2: 1
94W: blocked: 2: 1
95T: prioeq: 0: 83
96
97# Interrupt T3 and wait until T3 returned
98C: signal: 3: 0
99W: unlocked: 3: 0
100
101# Verify prio of T0 (still pending owner,
102# but T2 is enqueued due to the previous boost by T3
103T: prioeq: 0: 82
104
105# Let T0 continue
106C: lockcont: 0: 1
107W: locked: 0: 1
108
109# Unlock L1 and let T2 get L1
110C: unlock: 0: 1
111W: locked: 2: 1
112
113# Verify that T0 is unboosted
114W: unlocked: 0: 1
115T: priolt: 0: 1
116
117# Unlock everything and exit
118C: unlock: 2: 1
119W: unlocked: 2: 1
120
121C: unlock: 0: 0
122W: unlocked: 0: 0
123