Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / scripts / rt-tester / t4-l2-pi-deboost.tst
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 # 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)
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
55 C: schedother:          1:      0
56 C: schedfifo:           2:      82
57 C: schedfifo:           3:      83
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