blob: 2f0e049d64438bea77bd5c3b7dc02db5ec36f473 [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)
Thomas Gleixner61a87122006-06-27 02:54:56 -070022# signal thread to signal (0-7)
23# reset 0
24# resetevent 0
25#
26# Tests / Wait
27#
28# opcode opcode argument
29#
30# prioeq priority
31# priolt priority
32# priogt priority
33# nprioeq normal priority
34# npriolt normal priority
35# npriogt normal priority
36# locked lock nr (0-7)
37# blocked lock nr (0-7)
38# blockedwake lock nr (0-7)
39# unlocked lock nr (0-7)
Thomas Gleixner61a87122006-06-27 02:54:56 -070040# opcodeeq command opcode or number
41# opcodelt number
42# opcodegt number
43# eventeq number
44# eventgt number
45# eventlt number
46
47#
48# 4 threads 2 lock PI
49#
50C: resetevent: 0: 0
51W: opcodeeq: 0: 0
52
53# Set schedulers
54C: schedother: 0: 0
Thomas Gleixner61a87122006-06-27 02:54:56 -070055C: schedother: 1: 0
Thomas Gleixner61a87122006-06-27 02:54:56 -070056C: schedfifo: 2: 82
Thomas Gleixner61a87122006-06-27 02:54:56 -070057C: schedfifo: 3: 83
Thomas Gleixner61a87122006-06-27 02:54:56 -070058
59# T0 lock L0
60C: locknowait: 0: 0
61W: locked: 0: 0
62
63# T1 lock L1
64C: locknowait: 1: 1
65W: locked: 1: 1
66
67# T3 lock L0
68C: lockintnowait: 3: 0
69W: blocked: 3: 0
70T: prioeq: 0: 83
71
72# T0 lock L1
73C: lock: 0: 1
74W: blocked: 0: 1
75T: prioeq: 1: 83
76
77# T1 unlock L1
78C: unlock: 1: 1
79
80# Wait until T0 is in the wakeup code
81W: blockedwake: 0: 1
82
83# Verify that T1 is unboosted
84W: unlocked: 1: 1
85T: priolt: 1: 1
86
87# T2 lock L1 (T0 is boosted and pending owner !)
88C: locknowait: 2: 1
89W: blocked: 2: 1
90T: prioeq: 0: 83
91
92# Interrupt T3 and wait until T3 returned
93C: signal: 3: 0
94W: unlocked: 3: 0
95
96# Verify prio of T0 (still pending owner,
97# but T2 is enqueued due to the previous boost by T3
98T: prioeq: 0: 82
99
100# Let T0 continue
101C: lockcont: 0: 1
102W: locked: 0: 1
103
104# Unlock L1 and let T2 get L1
105C: unlock: 0: 1
106W: locked: 2: 1
107
108# Verify that T0 is unboosted
109W: unlocked: 0: 1
110T: priolt: 0: 1
111
112# Unlock everything and exit
113C: unlock: 2: 1
114W: unlocked: 2: 1
115
116C: unlock: 0: 0
117W: unlocked: 0: 0
118