PageRenderTime 137ms CodeModel.GetById 12ms app.highlight 123ms RepoModel.GetById 1ms app.codeStats 0ms

/scripts/rt-tester/t4-l2-pi-deboost.tst

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