Re: Priority Inheritance Test (Real-Time Preemption)

Ingo Molnar
2004-11-26T21:10:05Z

* Ingo Molnar <mingo@elte.hu> wrote:

> it can produce such a flow on SMP, or if you add in a third non-RT
> task (task-C). Agreed?

here's the 4-task flow. I've simplified the operations to make it easier
to overview: "L1-success means" 'task locked lock1 and got it'.
"L1-wait" means it tried to get lock1 but has to wait. "RT-prio" means a
non-RT task got boosted to RT priority. "old-prio" means priority got
restored to the original non-RT value. "UL-1" means 'unlocked lock1'.

task-A task-B task-C task-RT
-------------------------------------------------------
L2-success
L1-success
L1-wait
. L2-wait
. boost-A
RT-prio . .
L1-wait . .
boost-B . .
. RT-prio . .
. [ 1 ms ] . .
. UL-1 . .
. !RT-prio . .
get-L1 . .
[ 1 ms ] . .
UL-1 . .
get-L1 .
UL-2 .
old-prio .
get-L2
L1-wait
boost-C
RT-prio .
[ 1 msec ] .
UL-1 .
old-prio .
get-L1
[ success ]

this is a 3 milliseconds worst-case. Ok?

Ingo