From 0bafd214e4ba55dc1fb81a3031d0249292f1bc05 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 27 Jun 2006 02:55:01 -0700 Subject: [PATCH] rtmutex: Modify rtmutex-tester to test the setscheduler propagation Make test suite setscheduler calls asynchronously. Remove the waits in the test cases and add a new testcase to verify the correctness of the setscheduler priority propagation. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- scripts/rt-tester/check-all.sh | 1 + scripts/rt-tester/t2-l1-2rt-sameprio.tst | 2 - scripts/rt-tester/t2-l1-pi.tst | 2 - scripts/rt-tester/t2-l1-signal.tst | 2 - scripts/rt-tester/t2-l2-2rt-deadlock.tst | 2 - scripts/rt-tester/t3-l1-pi-1rt.tst | 3 - scripts/rt-tester/t3-l1-pi-2rt.tst | 3 - scripts/rt-tester/t3-l1-pi-3rt.tst | 3 - scripts/rt-tester/t3-l1-pi-signal.tst | 3 - scripts/rt-tester/t3-l1-pi-steal.tst | 3 - scripts/rt-tester/t3-l2-pi.tst | 3 - scripts/rt-tester/t4-l2-pi-deboost.tst | 4 - .../rt-tester/t5-l4-pi-boost-deboost-setsched.tst | 183 +++++++++++++++++++++ scripts/rt-tester/t5-l4-pi-boost-deboost.tst | 5 - 14 files changed, 184 insertions(+), 35 deletions(-) create mode 100644 scripts/rt-tester/t5-l4-pi-boost-deboost-setsched.tst (limited to 'scripts') diff --git a/scripts/rt-tester/check-all.sh b/scripts/rt-tester/check-all.sh index ac45c3e65a3..43098afe743 100644 --- a/scripts/rt-tester/check-all.sh +++ b/scripts/rt-tester/check-all.sh @@ -18,4 +18,5 @@ 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 diff --git a/scripts/rt-tester/t2-l1-2rt-sameprio.tst b/scripts/rt-tester/t2-l1-2rt-sameprio.tst index a2b6f2aae75..8821f27cc8b 100644 --- a/scripts/rt-tester/t2-l1-2rt-sameprio.tst +++ b/scripts/rt-tester/t2-l1-2rt-sameprio.tst @@ -57,9 +57,7 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedfifo: 0: 80 -W: opcodeeq: 0: 0 C: schedfifo: 1: 80 -W: opcodeeq: 1: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t2-l1-pi.tst b/scripts/rt-tester/t2-l1-pi.tst index aa4c8940acd..cde1f189a02 100644 --- a/scripts/rt-tester/t2-l1-pi.tst +++ b/scripts/rt-tester/t2-l1-pi.tst @@ -57,9 +57,7 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedfifo: 1: 80 -W: opcodeeq: 1: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t2-l1-signal.tst b/scripts/rt-tester/t2-l1-signal.tst index c47ba06af20..3ab0bfc4995 100644 --- a/scripts/rt-tester/t2-l1-signal.tst +++ b/scripts/rt-tester/t2-l1-signal.tst @@ -57,9 +57,7 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedother: 1: 0 -W: opcodeeq: 1: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t2-l2-2rt-deadlock.tst b/scripts/rt-tester/t2-l2-2rt-deadlock.tst index 0cee476b206..f4b5d5d6215 100644 --- a/scripts/rt-tester/t2-l2-2rt-deadlock.tst +++ b/scripts/rt-tester/t2-l2-2rt-deadlock.tst @@ -57,9 +57,7 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedfifo: 0: 80 -W: opcodeeq: 0: 0 C: schedfifo: 1: 80 -W: opcodeeq: 1: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t3-l1-pi-1rt.tst b/scripts/rt-tester/t3-l1-pi-1rt.tst index a5eaf7ed5d5..63440ca2cce 100644 --- a/scripts/rt-tester/t3-l1-pi-1rt.tst +++ b/scripts/rt-tester/t3-l1-pi-1rt.tst @@ -57,11 +57,8 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedother: 1: 0 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t3-l1-pi-2rt.tst b/scripts/rt-tester/t3-l1-pi-2rt.tst index c622391a8af..e5816fe67df 100644 --- a/scripts/rt-tester/t3-l1-pi-2rt.tst +++ b/scripts/rt-tester/t3-l1-pi-2rt.tst @@ -57,11 +57,8 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedfifo: 1: 81 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t3-l1-pi-3rt.tst b/scripts/rt-tester/t3-l1-pi-3rt.tst index b5057fb13e0..718b82b5d3b 100644 --- a/scripts/rt-tester/t3-l1-pi-3rt.tst +++ b/scripts/rt-tester/t3-l1-pi-3rt.tst @@ -57,11 +57,8 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedfifo: 0: 80 -W: opcodeeq: 0: 0 C: schedfifo: 1: 81 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t3-l1-pi-signal.tst b/scripts/rt-tester/t3-l1-pi-signal.tst index 3e427daa33f..c6e21356349 100644 --- a/scripts/rt-tester/t3-l1-pi-signal.tst +++ b/scripts/rt-tester/t3-l1-pi-signal.tst @@ -55,11 +55,8 @@ W: opcodeeq: 0: 0 # Set priorities C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedfifo: 1: 80 -W: opcodeeq: 1: 0 C: schedfifo: 2: 81 -W: opcodeeq: 2: 0 # T0 lock L0 C: lock: 0: 0 diff --git a/scripts/rt-tester/t3-l1-pi-steal.tst b/scripts/rt-tester/t3-l1-pi-steal.tst index 72c24a9e4be..f53749d59d7 100644 --- a/scripts/rt-tester/t3-l1-pi-steal.tst +++ b/scripts/rt-tester/t3-l1-pi-steal.tst @@ -57,11 +57,8 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedfifo: 1: 80 -W: opcodeeq: 1: 0 C: schedfifo: 2: 81 -W: opcodeeq: 2: 0 # T0 lock L0 C: lock: 0: 0 diff --git a/scripts/rt-tester/t3-l2-pi.tst b/scripts/rt-tester/t3-l2-pi.tst index 2ba0dced48f..cdc3e4fd7ba 100644 --- a/scripts/rt-tester/t3-l2-pi.tst +++ b/scripts/rt-tester/t3-l2-pi.tst @@ -57,11 +57,8 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedother: 1: 0 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t4-l2-pi-deboost.tst b/scripts/rt-tester/t4-l2-pi-deboost.tst index 01f1a80fa02..baa14137f47 100644 --- a/scripts/rt-tester/t4-l2-pi-deboost.tst +++ b/scripts/rt-tester/t4-l2-pi-deboost.tst @@ -57,13 +57,9 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedother: 1: 0 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 C: schedfifo: 3: 83 -W: opcodeeq: 3: 0 # T0 lock L0 C: locknowait: 0: 0 diff --git a/scripts/rt-tester/t5-l4-pi-boost-deboost-setsched.tst b/scripts/rt-tester/t5-l4-pi-boost-deboost-setsched.tst new file mode 100644 index 00000000000..e6ec0c81b54 --- /dev/null +++ b/scripts/rt-tester/t5-l4-pi-boost-deboost-setsched.tst @@ -0,0 +1,183 @@ +# +# 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) +# lockbkl lock nr (0-7) +# unlockbkl 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) +# lockedbkl dont care +# blockedbkl dont care +# unlockedbkl dont care +# 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 + diff --git a/scripts/rt-tester/t5-l4-pi-boost-deboost.tst b/scripts/rt-tester/t5-l4-pi-boost-deboost.tst index efa0788c118..ca64f8bbf4b 100644 --- a/scripts/rt-tester/t5-l4-pi-boost-deboost.tst +++ b/scripts/rt-tester/t5-l4-pi-boost-deboost.tst @@ -57,15 +57,10 @@ W: opcodeeq: 0: 0 # Set schedulers C: schedother: 0: 0 -W: opcodeeq: 0: 0 C: schedfifo: 1: 81 -W: opcodeeq: 1: 0 C: schedfifo: 2: 82 -W: opcodeeq: 2: 0 C: schedfifo: 3: 83 -W: opcodeeq: 3: 0 C: schedfifo: 4: 84 -W: opcodeeq: 4: 0 # T0 lock L0 C: locknowait: 0: 0 -- cgit v1.2.3