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

Reply via email to