Commit | Line | Data |
---|---|---|
61a87122 TG |
1 | # |
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) | |
61a87122 TG |
22 | # 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) | |
61a87122 TG |
40 | # 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 | # | |
50 | C: resetevent: 0: 0 | |
51 | W: opcodeeq: 0: 0 | |
52 | ||
53 | # Set schedulers | |
54 | C: schedother: 0: 0 | |
61a87122 | 55 | C: schedother: 1: 0 |
61a87122 | 56 | C: schedfifo: 2: 82 |
61a87122 | 57 | C: schedfifo: 3: 83 |
61a87122 TG |
58 | |
59 | # T0 lock L0 | |
60 | C: locknowait: 0: 0 | |
61 | W: locked: 0: 0 | |
62 | ||
63 | # T1 lock L1 | |
64 | C: locknowait: 1: 1 | |
65 | W: locked: 1: 1 | |
66 | ||
67 | # T3 lock L0 | |
68 | C: lockintnowait: 3: 0 | |
69 | W: blocked: 3: 0 | |
70 | T: prioeq: 0: 83 | |
71 | ||
72 | # T0 lock L1 | |
73 | C: lock: 0: 1 | |
74 | W: blocked: 0: 1 | |
75 | T: prioeq: 1: 83 | |
76 | ||
77 | # T1 unlock L1 | |
78 | C: unlock: 1: 1 | |
79 | ||
80 | # Wait until T0 is in the wakeup code | |
81 | W: blockedwake: 0: 1 | |
82 | ||
83 | # Verify that T1 is unboosted | |
84 | W: unlocked: 1: 1 | |
85 | T: priolt: 1: 1 | |
86 | ||
87 | # T2 lock L1 (T0 is boosted and pending owner !) | |
88 | C: locknowait: 2: 1 | |
89 | W: blocked: 2: 1 | |
90 | T: prioeq: 0: 83 | |
91 | ||
92 | # Interrupt T3 and wait until T3 returned | |
93 | C: signal: 3: 0 | |
94 | W: unlocked: 3: 0 | |
95 | ||
96 | # Verify prio of T0 (still pending owner, | |
97 | # but T2 is enqueued due to the previous boost by T3 | |
98 | T: prioeq: 0: 82 | |
99 | ||
100 | # Let T0 continue | |
101 | C: lockcont: 0: 1 | |
102 | W: locked: 0: 1 | |
103 | ||
104 | # Unlock L1 and let T2 get L1 | |
105 | C: unlock: 0: 1 | |
106 | W: locked: 2: 1 | |
107 | ||
108 | # Verify that T0 is unboosted | |
109 | W: unlocked: 0: 1 | |
110 | T: priolt: 0: 1 | |
111 | ||
112 | # Unlock everything and exit | |
113 | C: unlock: 2: 1 | |
114 | W: unlocked: 2: 1 | |
115 | ||
116 | C: unlock: 0: 0 | |
117 | W: unlocked: 0: 0 | |
118 |