[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <57149E8A.6060701@redhat.com>
Date: Mon, 18 Apr 2016 16:44:58 +0800
From: Xunlei Pang <xpang@...hat.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-kernel@...r.kernel.org,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@....com>,
Ingo Molnar <mingo@...hat.com>,
Steven Rostedt <rostedt@...dmis.org>
Subject: Re: [PATCH v3 1/6] rtmutex: Deboost before waking up the top waiter
On 2016/04/18 at 16:23, Thomas Gleixner wrote:
> 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)
We add a preempt_disable() before deboost to avoid the breakage,
there's also some comment about this in the patch's code.
Regards,
Xunlei
> deboost()
> (prio 0)
>
> --> preemption
>
> T3 (prio 5) ....
>
> Classic priority inversion enabled by a mechanism to avoid it. Brilliant
> stuff.
>
> Thanks,
>
> tglx
Powered by blists - more mailing lists