linux/scripts/rt-tester/t4-l2-pi-deboost.tst
<<
>>
Prefs
   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# lockbkl       lock nr (0-7)
  23# unlockbkl     lock nr (0-7)
  24# signal        thread to signal (0-7)
  25# reset         0
  26# resetevent    0
  27#
  28# Tests / Wait
  29#
  30# opcode        opcode argument
  31#
  32# prioeq        priority
  33# priolt        priority
  34# priogt        priority
  35# nprioeq       normal priority
  36# npriolt       normal priority
  37# npriogt       normal priority
  38# locked        lock nr (0-7)
  39# blocked       lock nr (0-7)
  40# blockedwake   lock nr (0-7)
  41# unlocked      lock nr (0-7)
  42# lockedbkl     dont care
  43# blockedbkl    dont care
  44# unlockedbkl   dont care
  45# opcodeeq      command opcode or number
  46# opcodelt      number
  47# opcodegt      number
  48# eventeq       number
  49# eventgt       number
  50# eventlt       number
  51
  52#
  53# 4 threads 2 lock PI
  54#
  55C: resetevent:          0:      0
  56W: opcodeeq:            0:      0
  57
  58# Set schedulers
  59C: schedother:          0:      0
  60C: schedother:          1:      0
  61C: schedfifo:           2:      82
  62C: schedfifo:           3:      83
  63
  64# T0 lock L0
  65C: locknowait:          0:      0
  66W: locked:              0:      0
  67
  68# T1 lock L1
  69C: locknowait:          1:      1
  70W: locked:              1:      1
  71
  72# T3 lock L0
  73C: lockintnowait:       3:      0
  74W: blocked:             3:      0
  75T: prioeq:              0:      83
  76
  77# T0 lock L1
  78C: lock:                0:      1
  79W: blocked:             0:      1
  80T: prioeq:              1:      83
  81
  82# T1 unlock L1
  83C: unlock:              1:      1
  84
  85# Wait until T0 is in the wakeup code
  86W: blockedwake:         0:      1
  87
  88# Verify that T1 is unboosted
  89W: unlocked:            1:      1
  90T: priolt:              1:      1
  91
  92# T2 lock L1 (T0 is boosted and pending owner !)
  93C: locknowait:          2:      1
  94W: blocked:             2:      1
  95T: prioeq:              0:      83
  96
  97# Interrupt T3 and wait until T3 returned
  98C: signal:              3:      0
  99W: unlocked:            3:      0
 100
 101# Verify prio of T0 (still pending owner,
 102# but T2 is enqueued due to the previous boost by T3
 103T: prioeq:              0:      82
 104
 105# Let T0 continue
 106C: lockcont:            0:      1
 107W: locked:              0:      1
 108
 109# Unlock L1 and let T2 get L1
 110C: unlock:              0:      1
 111W: locked:              2:      1
 112
 113# Verify that T0 is unboosted
 114W: unlocked:            0:      1
 115T: priolt:              0:      1
 116
 117# Unlock everything and exit
 118C: unlock:              2:      1
 119W: unlocked:            2:      1
 120
 121C: unlock:              0:      0
 122W: unlocked:            0:      0
 123
 124