Re: [patch-rt v2] rtmutex: Fix lock stealing logic

From: Mike Galbraith
Date: Fri Jun 23 2017 - 10:07:36 EST


On Fri, 2017-06-23 at 09:33 -0400, Steven Rostedt wrote:
> struct task_struct *task,
> > @@ -886,20 +901,16 @@ static int __try_to_take_rt_mutex(struct
> > */
> > if (waiter) {
> > /*
> > - * If waiter is not the highest priority waiter of
> > - * @lock, give up.
> > + * If waiter is not the highest priority waiter of @lock,
> > + * or its peer when lateral steal is allowed, give up.
> > */
> > - if (waiter != rt_mutex_top_waiter(lock)) {
> > - /* XXX rt_mutex_waiter_less() ? */
> > + if (!rt_mutex_steal(lock, waiter, mode))
> > return 0;
> > - }
> > -
> > /*
> > * We can acquire the lock. Remove the waiter from the
> > * lock waiters tree.
> > */
> > rt_mutex_dequeue(lock, waiter);
> > -
>
> I liked that space.

I like minus signs in diffstat, that one was a freebee. ÂMaintainers
can revive it if they like, or I can post a V3 with it revived as well
as s/rt_mutex_steal/rt_mutex_claim.

-Mike