On Thu, 14 Apr 2016, Xunlei Pang wrote: > We should deboost before waking the high-prio task such that > we don't run two tasks with the 'same' priority.
No. This is fundamentaly broken. T1 (prio 0) lock(X) --> preemption T2 (prio 10) lock(X) boost(T1) schedule() T1 (prio 10) unlock(X) deboost() (prio 0) --> preemption T3 (prio 5) .... Classic priority inversion enabled by a mechanism to avoid it. Brilliant stuff. Thanks, tglx