Re: Priority Inheritance Test (Real-Time Preemption)

From: Ingo Molnar
Date: Fri Nov 26 2004 - 16:13:57 EST



* Ingo Molnar <mingo@xxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/