Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / 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