Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-btrfs-devel.git] / scripts / rt-tester / t3-l1-pi-steal.tst
blobe03db7e010fa242aa28b1165f1e1d61d89c47cf3
2 # rt-mutex test
4 # Op: C(ommand)/T(est)/W(ait)
5 # |  opcode
6 # |  |     threadid: 0-7
7 # |  |     |  opcode argument
8 # |  |     |  |
9 # C: lock: 0: 0
11 # Commands
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
26 # Tests / Wait
28 # opcode        opcode argument
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
48 # 3 threads 1 lock PI steal pending ownership
50 C: resetevent:          0:      0
51 W: opcodeeq:            0:      0
53 # Set schedulers
54 C: schedother:          0:      0
55 C: schedfifo:           1:      80
56 C: schedfifo:           2:      81
58 # T0 lock L0
59 C: lock:                0:      0
60 W: locked:              0:      0
62 # T1 lock L0
63 C: lock:                1:      0
64 W: blocked:             1:      0
65 T: prioeq:              0:      80
67 # T0 unlock L0
68 C: unlock:              0:      0
70 # Wait until T1 is in the wakeup loop
71 W: blockedwake:         1:      0
72 T: priolt:              0:      1
74 # T2 lock L0
75 C: lock:                2:      0
76 # T1 leave wakeup loop
77 C: lockcont:            1:      0
79 # T2 must have the lock and T1 must be blocked
80 W: locked:              2:      0
81 W: blocked:             1:      0
83 # T2 unlock L0
84 C: unlock:              2:      0
86 # Wait until T1 is in the wakeup loop and let it run
87 W: blockedwake:         1:      0
88 C: lockcont:            1:      0
89 W: locked:              1:      0
90 C: unlock:              1:      0
91 W: unlocked:            1:      0