[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160420131054.GA3430@twins.programming.kicks-ass.net>
Date: Wed, 20 Apr 2016 15:10:54 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: xlpang@...hat.com, linux-kernel@...r.kernel.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 Wed, Apr 20, 2016 at 02:43:29PM +0200, Thomas Gleixner wrote:
> > So its semantically icky to have the two tasks running off the same
> > state and practically icky when you consider bandwidth inheritance --
> > where the boosted task wants to explicitly modify the state of the
> > booster.
> >
> > In that latter case you really want to unboost before you let the
> > booster run again.
>
> I understand that. That doesn't make the changelog any better, which mumbles
> about priorities :(
Agreed.
> > However, you noted we need to deal with this case due to the whole
> > optimistic spinning crap anyway :/
>
> Right, but that's another dimension of madness. Both tasks are on a cpu.
> The reason why we boost the lock holder before spinning is to make
> sure that it does not get preempted by something of medium priority
> before dropping the lock.
Right; I figured that out pretty quickly, which is why this patch does a
preempt_disable() over the unboost+wakeup.
FWIW, the immediate reason for this patch is that is ensures the new
p->pi_task pointer, points to something that exists.
> That really gets interesting with bandwith inheritance ....
I'm more worried about the optimistic spinning case..
Powered by blists - more mailing lists