Blame view

scripts/rt-tester/t4-l2-pi-deboost.tst 1.98 KB
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  #
  # rt-mutex test
  #
  # Op: C(ommand)/T(est)/W(ait)
  # |  opcode
  # |  |     threadid: 0-7
  # |  |     |  opcode argument
  # |  |     |  |
  # C: lock: 0: 0
  #
  # Commands
  #
  # opcode	opcode argument
  # schedother	nice value
  # schedfifo	priority
  # lock		lock nr (0-7)
  # locknowait	lock nr (0-7)
  # lockint	lock nr (0-7)
  # lockintnowait	lock nr (0-7)
  # lockcont	lock nr (0-7)
  # unlock	lock nr (0-7)
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  # signal	thread to signal (0-7)
  # reset		0
  # resetevent	0
  #
  # Tests / Wait
  #
  # opcode	opcode argument
  #
  # prioeq	priority
  # priolt	priority
  # priogt	priority
  # nprioeq	normal priority
  # npriolt	normal priority
  # npriogt	normal priority
  # locked	lock nr (0-7)
  # blocked	lock nr (0-7)
  # blockedwake	lock nr (0-7)
  # unlocked	lock nr (0-7)
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  # opcodeeq	command opcode or number
  # opcodelt	number
  # opcodegt	number
  # eventeq	number
  # eventgt	number
  # eventlt	number
  
  #
  # 4 threads 2 lock PI
  #
  C: resetevent:		0: 	0
  W: opcodeeq:		0: 	0
  
  # Set schedulers
  C: schedother:		0: 	0
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
55
  C: schedother:		1: 	0
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
56
  C: schedfifo:		2: 	82
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
57
  C: schedfifo:		3: 	83
61a871228   Thomas Gleixner   [PATCH] pi-futex:...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  
  # T0 lock L0
  C: locknowait:		0: 	0
  W: locked:		0: 	0
  
  # T1 lock L1
  C: locknowait:		1: 	1
  W: locked:		1: 	1
  
  # T3 lock L0
  C: lockintnowait:	3: 	0
  W: blocked:		3: 	0
  T: prioeq:		0: 	83
  
  # T0 lock L1
  C: lock:		0: 	1
  W: blocked:		0: 	1
  T: prioeq:		1: 	83
  
  # T1 unlock L1
  C: unlock:		1:	1
  
  # Wait until T0 is in the wakeup code
  W: blockedwake:		0:	1
  
  # Verify that T1 is unboosted
  W: unlocked:		1: 	1
  T: priolt:		1: 	1
  
  # T2 lock L1 (T0 is boosted and pending owner !)
  C: locknowait:		2:	1
  W: blocked:		2: 	1
  T: prioeq:		0: 	83
  
  # Interrupt T3 and wait until T3 returned
  C: signal:		3:	0
  W: unlocked:		3:	0
  
  # Verify prio of T0 (still pending owner,
  # but T2 is enqueued due to the previous boost by T3
  T: prioeq:		0:	82
  
  # Let T0 continue
  C: lockcont:		0:	1
  W: locked:		0:	1
  
  # Unlock L1 and let T2 get L1
  C: unlock:		0:	1
  W: locked:		2:	1
  
  # Verify that T0 is unboosted
  W: unlocked:		0:	1
  T: priolt:		0:	1
  
  # Unlock everything and exit
  C: unlock:		2:	1
  W: unlocked:		2:	1
  
  C: unlock:		0:	0
  W: unlocked:		0:	0