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