rtmutex: Delete scriptable tester
No one uses this anymore, and this is not the first time the idea of replacing it with a (now possible) userspace side. Lock stealing logic was removed long ago in when the lock was granted to the highest prio. Signed-off-by: Davidlohr Bueso <dbueso@suse.de> Cc: Darren Hart <dvhart@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Mike Galbraith <umgwanakikbuti@gmail.com> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1435782588-4177-2-git-send-email-dave@stgolabs.net Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:

committed by
Thomas Gleixner

parent
ab51fbab39
commit
1b0b7c1762
@@ -1,21 +0,0 @@
|
||||
|
||||
|
||||
function testit ()
|
||||
{
|
||||
printf "%-30s: " $1
|
||||
./rt-tester.py $1 | grep Pass
|
||||
}
|
||||
|
||||
testit t2-l1-2rt-sameprio.tst
|
||||
testit t2-l1-pi.tst
|
||||
testit t2-l1-signal.tst
|
||||
#testit t2-l2-2rt-deadlock.tst
|
||||
testit t3-l1-pi-1rt.tst
|
||||
testit t3-l1-pi-2rt.tst
|
||||
testit t3-l1-pi-3rt.tst
|
||||
testit t3-l1-pi-signal.tst
|
||||
testit t3-l1-pi-steal.tst
|
||||
testit t3-l2-pi.tst
|
||||
testit t4-l2-pi-deboost.tst
|
||||
testit t5-l4-pi-boost-deboost.tst
|
||||
testit t5-l4-pi-boost-deboost-setsched.tst
|
@@ -1,218 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# rt-mutex tester
|
||||
#
|
||||
# (C) 2006 Thomas Gleixner <tglx@linutronix.de>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 2 as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
import getopt
|
||||
import shutil
|
||||
import string
|
||||
|
||||
# Globals
|
||||
quiet = 0
|
||||
test = 0
|
||||
comments = 0
|
||||
|
||||
sysfsprefix = "/sys/devices/system/rttest/rttest"
|
||||
statusfile = "/status"
|
||||
commandfile = "/command"
|
||||
|
||||
# Command opcodes
|
||||
cmd_opcodes = {
|
||||
"schedother" : "1",
|
||||
"schedfifo" : "2",
|
||||
"lock" : "3",
|
||||
"locknowait" : "4",
|
||||
"lockint" : "5",
|
||||
"lockintnowait" : "6",
|
||||
"lockcont" : "7",
|
||||
"unlock" : "8",
|
||||
"signal" : "11",
|
||||
"resetevent" : "98",
|
||||
"reset" : "99",
|
||||
}
|
||||
|
||||
test_opcodes = {
|
||||
"prioeq" : ["P" , "eq" , None],
|
||||
"priolt" : ["P" , "lt" , None],
|
||||
"priogt" : ["P" , "gt" , None],
|
||||
"nprioeq" : ["N" , "eq" , None],
|
||||
"npriolt" : ["N" , "lt" , None],
|
||||
"npriogt" : ["N" , "gt" , None],
|
||||
"unlocked" : ["M" , "eq" , 0],
|
||||
"trylock" : ["M" , "eq" , 1],
|
||||
"blocked" : ["M" , "eq" , 2],
|
||||
"blockedwake" : ["M" , "eq" , 3],
|
||||
"locked" : ["M" , "eq" , 4],
|
||||
"opcodeeq" : ["O" , "eq" , None],
|
||||
"opcodelt" : ["O" , "lt" , None],
|
||||
"opcodegt" : ["O" , "gt" , None],
|
||||
"eventeq" : ["E" , "eq" , None],
|
||||
"eventlt" : ["E" , "lt" , None],
|
||||
"eventgt" : ["E" , "gt" , None],
|
||||
}
|
||||
|
||||
# Print usage information
|
||||
def usage():
|
||||
print "rt-tester.py <-c -h -q -t> <testfile>"
|
||||
print " -c display comments after first command"
|
||||
print " -h help"
|
||||
print " -q quiet mode"
|
||||
print " -t test mode (syntax check)"
|
||||
print " testfile: read test specification from testfile"
|
||||
print " otherwise from stdin"
|
||||
return
|
||||
|
||||
# Print progress when not in quiet mode
|
||||
def progress(str):
|
||||
if not quiet:
|
||||
print str
|
||||
|
||||
# Analyse a status value
|
||||
def analyse(val, top, arg):
|
||||
|
||||
intval = int(val)
|
||||
|
||||
if top[0] == "M":
|
||||
intval = intval / (10 ** int(arg))
|
||||
intval = intval % 10
|
||||
argval = top[2]
|
||||
elif top[0] == "O":
|
||||
argval = int(cmd_opcodes.get(arg, arg))
|
||||
else:
|
||||
argval = int(arg)
|
||||
|
||||
# progress("%d %s %d" %(intval, top[1], argval))
|
||||
|
||||
if top[1] == "eq" and intval == argval:
|
||||
return 1
|
||||
if top[1] == "lt" and intval < argval:
|
||||
return 1
|
||||
if top[1] == "gt" and intval > argval:
|
||||
return 1
|
||||
return 0
|
||||
|
||||
# Parse the commandline
|
||||
try:
|
||||
(options, arguments) = getopt.getopt(sys.argv[1:],'chqt')
|
||||
except getopt.GetoptError, ex:
|
||||
usage()
|
||||
sys.exit(1)
|
||||
|
||||
# Parse commandline options
|
||||
for option, value in options:
|
||||
if option == "-c":
|
||||
comments = 1
|
||||
elif option == "-q":
|
||||
quiet = 1
|
||||
elif option == "-t":
|
||||
test = 1
|
||||
elif option == '-h':
|
||||
usage()
|
||||
sys.exit(0)
|
||||
|
||||
# Select the input source
|
||||
if arguments:
|
||||
try:
|
||||
fd = open(arguments[0])
|
||||
except Exception,ex:
|
||||
sys.stderr.write("File not found %s\n" %(arguments[0]))
|
||||
sys.exit(1)
|
||||
else:
|
||||
fd = sys.stdin
|
||||
|
||||
linenr = 0
|
||||
|
||||
# Read the test patterns
|
||||
while 1:
|
||||
|
||||
linenr = linenr + 1
|
||||
line = fd.readline()
|
||||
if not len(line):
|
||||
break
|
||||
|
||||
line = line.strip()
|
||||
parts = line.split(":")
|
||||
|
||||
if not parts or len(parts) < 1:
|
||||
continue
|
||||
|
||||
if len(parts[0]) == 0:
|
||||
continue
|
||||
|
||||
if parts[0].startswith("#"):
|
||||
if comments > 1:
|
||||
progress(line)
|
||||
continue
|
||||
|
||||
if comments == 1:
|
||||
comments = 2
|
||||
|
||||
progress(line)
|
||||
|
||||
cmd = parts[0].strip().lower()
|
||||
opc = parts[1].strip().lower()
|
||||
tid = parts[2].strip()
|
||||
dat = parts[3].strip()
|
||||
|
||||
try:
|
||||
# Test or wait for a status value
|
||||
if cmd == "t" or cmd == "w":
|
||||
testop = test_opcodes[opc]
|
||||
|
||||
fname = "%s%s%s" %(sysfsprefix, tid, statusfile)
|
||||
if test:
|
||||
print fname
|
||||
continue
|
||||
|
||||
while 1:
|
||||
query = 1
|
||||
fsta = open(fname, 'r')
|
||||
status = fsta.readline().strip()
|
||||
fsta.close()
|
||||
stat = status.split(",")
|
||||
for s in stat:
|
||||
s = s.strip()
|
||||
if s.startswith(testop[0]):
|
||||
# Separate status value
|
||||
val = s[2:].strip()
|
||||
query = analyse(val, testop, dat)
|
||||
break
|
||||
if query or cmd == "t":
|
||||
break
|
||||
|
||||
progress(" " + status)
|
||||
|
||||
if not query:
|
||||
sys.stderr.write("Test failed in line %d\n" %(linenr))
|
||||
sys.exit(1)
|
||||
|
||||
# Issue a command to the tester
|
||||
elif cmd == "c":
|
||||
cmdnr = cmd_opcodes[opc]
|
||||
# Build command string and sys filename
|
||||
cmdstr = "%s:%s" %(cmdnr, dat)
|
||||
fname = "%s%s%s" %(sysfsprefix, tid, commandfile)
|
||||
if test:
|
||||
print fname
|
||||
continue
|
||||
fcmd = open(fname, 'w')
|
||||
fcmd.write(cmdstr)
|
||||
fcmd.close()
|
||||
|
||||
except Exception,ex:
|
||||
sys.stderr.write(str(ex))
|
||||
sys.stderr.write("\nSyntax error in line %d\n" %(linenr))
|
||||
if not test:
|
||||
fd.close()
|
||||
sys.exit(1)
|
||||
|
||||
# Normal exit pass
|
||||
print "Pass"
|
||||
sys.exit(0)
|
@@ -1,94 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# signal 0
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 2 threads 1 lock
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedfifo: 0: 80
|
||||
C: schedfifo: 1: 80
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
C: locknowait: 1: 0
|
||||
W: locked: 0: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 80
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
W: locked: 1: 0
|
||||
|
||||
# Verify T0
|
||||
W: unlocked: 0: 0
|
||||
T: prioeq: 0: 80
|
||||
|
||||
# Unlock
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
|
||||
# T1,T0 lock L0
|
||||
C: locknowait: 1: 0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 1: 0
|
||||
W: blocked: 0: 0
|
||||
T: prioeq: 1: 80
|
||||
|
||||
# T1 unlock L0
|
||||
C: unlock: 1: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# Verify T1
|
||||
W: unlocked: 1: 0
|
||||
T: prioeq: 1: 80
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 0: 0
|
||||
W: unlocked: 0: 0
|
||||
|
@@ -1,77 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# signal 0
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 2 threads 1 lock with priority inversion
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 80
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 80
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
W: locked: 1: 0
|
||||
|
||||
# Verify T1
|
||||
W: unlocked: 0: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
|
@@ -1,72 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# signal 0
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 2 threads 1 lock with priority inversion
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedother: 1: 0
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: lockintnowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
|
||||
# Interrupt T1
|
||||
C: signal: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
T: opcodeeq: 1: -4
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 0: 0
|
||||
W: unlocked: 0: 0
|
@@ -1,84 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# signal 0
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 2 threads 2 lock
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedfifo: 0: 80
|
||||
C: schedfifo: 1: 80
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L1
|
||||
C: locknowait: 1: 1
|
||||
W: locked: 1: 1
|
||||
|
||||
# T0 lock L1
|
||||
C: lockintnowait: 0: 1
|
||||
W: blocked: 0: 1
|
||||
|
||||
# T1 lock L0
|
||||
C: lockintnowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
|
||||
# Make deadlock go away
|
||||
C: signal: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
C: signal: 0: 0
|
||||
W: unlocked: 0: 1
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 0: 0
|
||||
W: unlocked: 0: 0
|
||||
C: unlock: 1: 1
|
||||
W: unlocked: 1: 1
|
||||
|
@@ -1,87 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 3 threads 1 lock PI
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedother: 1: 0
|
||||
C: schedfifo: 2: 82
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 lock L0
|
||||
C: locknowait: 2: 0
|
||||
W: blocked: 2: 0
|
||||
T: prioeq: 0: 82
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T2 got the lock
|
||||
W: locked: 2: 0
|
||||
W: unlocked: 0: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 unlock L0
|
||||
C: unlock: 2: 0
|
||||
|
||||
W: unlocked: 2: 0
|
||||
W: locked: 1: 0
|
||||
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
@@ -1,88 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 3 threads 1 lock PI
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 81
|
||||
C: schedfifo: 2: 82
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 81
|
||||
|
||||
# T2 lock L0
|
||||
C: locknowait: 2: 0
|
||||
W: blocked: 2: 0
|
||||
T: prioeq: 0: 82
|
||||
T: prioeq: 1: 81
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T2 got the lock
|
||||
W: locked: 2: 0
|
||||
W: unlocked: 0: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 unlock L0
|
||||
C: unlock: 2: 0
|
||||
|
||||
W: unlocked: 2: 0
|
||||
W: locked: 1: 0
|
||||
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
@@ -1,87 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 3 threads 1 lock PI
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedfifo: 0: 80
|
||||
C: schedfifo: 1: 81
|
||||
C: schedfifo: 2: 82
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 81
|
||||
|
||||
# T2 lock L0
|
||||
C: locknowait: 2: 0
|
||||
W: blocked: 2: 0
|
||||
T: prioeq: 0: 82
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T2 got the lock
|
||||
W: locked: 2: 0
|
||||
W: unlocked: 0: 0
|
||||
T: prioeq: 0: 80
|
||||
|
||||
# T2 unlock L0
|
||||
C: unlock: 2: 0
|
||||
|
||||
W: locked: 1: 0
|
||||
W: unlocked: 2: 0
|
||||
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
@@ -1,93 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
# Reset event counter
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set priorities
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 80
|
||||
C: schedfifo: 2: 81
|
||||
|
||||
# T0 lock L0
|
||||
C: lock: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0, no wait in the wakeup path
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 80
|
||||
T: prioeq: 1: 80
|
||||
|
||||
# T2 lock L0 interruptible, no wait in the wakeup path
|
||||
C: lockintnowait: 2: 0
|
||||
W: blocked: 2: 0
|
||||
T: prioeq: 0: 81
|
||||
T: prioeq: 1: 80
|
||||
|
||||
# Interrupt T2
|
||||
C: signal: 2: 2
|
||||
W: unlocked: 2: 0
|
||||
T: prioeq: 1: 80
|
||||
T: prioeq: 0: 80
|
||||
|
||||
T: locked: 0: 0
|
||||
T: blocked: 1: 0
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T1 has locked L0 and exit
|
||||
W: locked: 1: 0
|
||||
W: unlocked: 0: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
|
||||
|
||||
|
@@ -1,91 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 3 threads 1 lock PI steal pending ownership
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 80
|
||||
C: schedfifo: 2: 81
|
||||
|
||||
# T0 lock L0
|
||||
C: lock: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: lock: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 80
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T1 is in the wakeup loop
|
||||
W: blockedwake: 1: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 lock L0
|
||||
C: lock: 2: 0
|
||||
# T1 leave wakeup loop
|
||||
C: lockcont: 1: 0
|
||||
|
||||
# T2 must have the lock and T1 must be blocked
|
||||
W: locked: 2: 0
|
||||
W: blocked: 1: 0
|
||||
|
||||
# T2 unlock L0
|
||||
C: unlock: 2: 0
|
||||
|
||||
# Wait until T1 is in the wakeup loop and let it run
|
||||
W: blockedwake: 1: 0
|
||||
C: lockcont: 1: 0
|
||||
W: locked: 1: 0
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
@@ -1,87 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 3 threads 2 lock PI
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedother: 1: 0
|
||||
C: schedfifo: 2: 82
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L0
|
||||
C: locknowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 lock L0
|
||||
C: locknowait: 2: 0
|
||||
W: blocked: 2: 0
|
||||
T: prioeq: 0: 82
|
||||
|
||||
# T0 unlock L0
|
||||
C: unlock: 0: 0
|
||||
|
||||
# Wait until T2 got the lock
|
||||
W: locked: 2: 0
|
||||
W: unlocked: 0: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# T2 unlock L0
|
||||
C: unlock: 2: 0
|
||||
|
||||
W: unlocked: 2: 0
|
||||
W: locked: 1: 0
|
||||
|
||||
C: unlock: 1: 0
|
||||
W: unlocked: 1: 0
|
@@ -1,118 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# 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
|
||||
C: schedother: 1: 0
|
||||
C: schedfifo: 2: 82
|
||||
C: schedfifo: 3: 83
|
||||
|
||||
# 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
|
||||
|
@@ -1,178 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 5 threads 4 lock PI - modify priority of blocked threads
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 81
|
||||
C: schedfifo: 2: 82
|
||||
C: schedfifo: 3: 83
|
||||
C: schedfifo: 4: 84
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L1
|
||||
C: locknowait: 1: 1
|
||||
W: locked: 1: 1
|
||||
|
||||
# T1 lock L0
|
||||
C: lockintnowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 81
|
||||
|
||||
# T2 lock L2
|
||||
C: locknowait: 2: 2
|
||||
W: locked: 2: 2
|
||||
|
||||
# T2 lock L1
|
||||
C: lockintnowait: 2: 1
|
||||
W: blocked: 2: 1
|
||||
T: prioeq: 0: 82
|
||||
T: prioeq: 1: 82
|
||||
|
||||
# T3 lock L3
|
||||
C: locknowait: 3: 3
|
||||
W: locked: 3: 3
|
||||
|
||||
# T3 lock L2
|
||||
C: lockintnowait: 3: 2
|
||||
W: blocked: 3: 2
|
||||
T: prioeq: 0: 83
|
||||
T: prioeq: 1: 83
|
||||
T: prioeq: 2: 83
|
||||
|
||||
# T4 lock L3
|
||||
C: lockintnowait: 4: 3
|
||||
W: blocked: 4: 3
|
||||
T: prioeq: 0: 84
|
||||
T: prioeq: 1: 84
|
||||
T: prioeq: 2: 84
|
||||
T: prioeq: 3: 84
|
||||
|
||||
# Reduce prio of T4
|
||||
C: schedfifo: 4: 80
|
||||
T: prioeq: 0: 83
|
||||
T: prioeq: 1: 83
|
||||
T: prioeq: 2: 83
|
||||
T: prioeq: 3: 83
|
||||
T: prioeq: 4: 80
|
||||
|
||||
# Increase prio of T4
|
||||
C: schedfifo: 4: 84
|
||||
T: prioeq: 0: 84
|
||||
T: prioeq: 1: 84
|
||||
T: prioeq: 2: 84
|
||||
T: prioeq: 3: 84
|
||||
T: prioeq: 4: 84
|
||||
|
||||
# Reduce prio of T3
|
||||
C: schedfifo: 3: 80
|
||||
T: prioeq: 0: 84
|
||||
T: prioeq: 1: 84
|
||||
T: prioeq: 2: 84
|
||||
T: prioeq: 3: 84
|
||||
T: prioeq: 4: 84
|
||||
|
||||
# Increase prio of T3
|
||||
C: schedfifo: 3: 85
|
||||
T: prioeq: 0: 85
|
||||
T: prioeq: 1: 85
|
||||
T: prioeq: 2: 85
|
||||
T: prioeq: 3: 85
|
||||
T: prioeq: 4: 84
|
||||
|
||||
# Reduce prio of T3
|
||||
C: schedfifo: 3: 83
|
||||
T: prioeq: 0: 84
|
||||
T: prioeq: 1: 84
|
||||
T: prioeq: 2: 84
|
||||
T: prioeq: 3: 84
|
||||
T: prioeq: 4: 84
|
||||
|
||||
# Signal T4
|
||||
C: signal: 4: 0
|
||||
W: unlocked: 4: 3
|
||||
T: prioeq: 0: 83
|
||||
T: prioeq: 1: 83
|
||||
T: prioeq: 2: 83
|
||||
T: prioeq: 3: 83
|
||||
|
||||
# Signal T3
|
||||
C: signal: 3: 0
|
||||
W: unlocked: 3: 2
|
||||
T: prioeq: 0: 82
|
||||
T: prioeq: 1: 82
|
||||
T: prioeq: 2: 82
|
||||
|
||||
# Signal T2
|
||||
C: signal: 2: 0
|
||||
W: unlocked: 2: 1
|
||||
T: prioeq: 0: 81
|
||||
T: prioeq: 1: 81
|
||||
|
||||
# Signal T1
|
||||
C: signal: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 3: 3
|
||||
C: unlock: 2: 2
|
||||
C: unlock: 1: 1
|
||||
C: unlock: 0: 0
|
||||
|
||||
W: unlocked: 3: 3
|
||||
W: unlocked: 2: 2
|
||||
W: unlocked: 1: 1
|
||||
W: unlocked: 0: 0
|
||||
|
@@ -1,138 +0,0 @@
|
||||
#
|
||||
# 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)
|
||||
# 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)
|
||||
# opcodeeq command opcode or number
|
||||
# opcodelt number
|
||||
# opcodegt number
|
||||
# eventeq number
|
||||
# eventgt number
|
||||
# eventlt number
|
||||
|
||||
#
|
||||
# 5 threads 4 lock PI
|
||||
#
|
||||
C: resetevent: 0: 0
|
||||
W: opcodeeq: 0: 0
|
||||
|
||||
# Set schedulers
|
||||
C: schedother: 0: 0
|
||||
C: schedfifo: 1: 81
|
||||
C: schedfifo: 2: 82
|
||||
C: schedfifo: 3: 83
|
||||
C: schedfifo: 4: 84
|
||||
|
||||
# T0 lock L0
|
||||
C: locknowait: 0: 0
|
||||
W: locked: 0: 0
|
||||
|
||||
# T1 lock L1
|
||||
C: locknowait: 1: 1
|
||||
W: locked: 1: 1
|
||||
|
||||
# T1 lock L0
|
||||
C: lockintnowait: 1: 0
|
||||
W: blocked: 1: 0
|
||||
T: prioeq: 0: 81
|
||||
|
||||
# T2 lock L2
|
||||
C: locknowait: 2: 2
|
||||
W: locked: 2: 2
|
||||
|
||||
# T2 lock L1
|
||||
C: lockintnowait: 2: 1
|
||||
W: blocked: 2: 1
|
||||
T: prioeq: 0: 82
|
||||
T: prioeq: 1: 82
|
||||
|
||||
# T3 lock L3
|
||||
C: locknowait: 3: 3
|
||||
W: locked: 3: 3
|
||||
|
||||
# T3 lock L2
|
||||
C: lockintnowait: 3: 2
|
||||
W: blocked: 3: 2
|
||||
T: prioeq: 0: 83
|
||||
T: prioeq: 1: 83
|
||||
T: prioeq: 2: 83
|
||||
|
||||
# T4 lock L3
|
||||
C: lockintnowait: 4: 3
|
||||
W: blocked: 4: 3
|
||||
T: prioeq: 0: 84
|
||||
T: prioeq: 1: 84
|
||||
T: prioeq: 2: 84
|
||||
T: prioeq: 3: 84
|
||||
|
||||
# Signal T4
|
||||
C: signal: 4: 0
|
||||
W: unlocked: 4: 3
|
||||
T: prioeq: 0: 83
|
||||
T: prioeq: 1: 83
|
||||
T: prioeq: 2: 83
|
||||
T: prioeq: 3: 83
|
||||
|
||||
# Signal T3
|
||||
C: signal: 3: 0
|
||||
W: unlocked: 3: 2
|
||||
T: prioeq: 0: 82
|
||||
T: prioeq: 1: 82
|
||||
T: prioeq: 2: 82
|
||||
|
||||
# Signal T2
|
||||
C: signal: 2: 0
|
||||
W: unlocked: 2: 1
|
||||
T: prioeq: 0: 81
|
||||
T: prioeq: 1: 81
|
||||
|
||||
# Signal T1
|
||||
C: signal: 1: 0
|
||||
W: unlocked: 1: 0
|
||||
T: priolt: 0: 1
|
||||
|
||||
# Unlock and exit
|
||||
C: unlock: 3: 3
|
||||
C: unlock: 2: 2
|
||||
C: unlock: 1: 1
|
||||
C: unlock: 0: 0
|
||||
|
||||
W: unlocked: 3: 3
|
||||
W: unlocked: 2: 2
|
||||
W: unlocked: 1: 1
|
||||
W: unlocked: 0: 0
|
||||
|
Reference in New Issue
Block a user