From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [ANNOUNCE] 3.2.9-rt17 Date: Thu, 08 Mar 2012 22:37:05 +0100 Message-ID: <1331242625.11248.433.camel@twins> References: <1331230991.25686.452.camel@gandalf.stny.rr.com> <1331231287.11248.396.camel@twins> <1331232159.25686.456.camel@gandalf.stny.rr.com> <1331235579.11248.402.camel@twins> <1331237441.25686.469.camel@gandalf.stny.rr.com> <1331238369.11248.426.camel@twins> <1331240882.25686.499.camel@gandalf.stny.rr.com> <1331241627.11248.430.camel@twins> <1331241940.25686.502.camel@gandalf.stny.rr.com> <1331242104.11248.432.camel@twins> <1331242574.25686.505.camel@gandalf.stny.rr.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Cc: Thomas Gleixner , LKML , linux-rt-users To: Steven Rostedt Return-path: Received: from merlin.infradead.org ([205.233.59.134]:48632 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756377Ab2CHVhO convert rfc822-to-8bit (ORCPT ); Thu, 8 Mar 2012 16:37:14 -0500 In-Reply-To: <1331242574.25686.505.camel@gandalf.stny.rr.com> Sender: linux-rt-users-owner@vger.kernel.org List-ID: On Thu, 2012-03-08 at 16:36 -0500, Steven Rostedt wrote: > On Thu, 2012-03-08 at 22:28 +0100, Peter Zijlstra wrote: > > On Thu, 2012-03-08 at 16:25 -0500, Steven Rostedt wrote: > > > > > > How would this be different than what mainline does? When the lock is > > > released, it will wake up the other task. > > > > mainline has ticket locks, the rt-mutex stuff has equal priority lock > > stealing, waking up the blocked task will take so long our running loop > > will have re-acquired ->d_lock again before it even gets to trying. > > And we have adaptive mutexes. > > So we wake up the task (now with the higher priority), by the time it > wakes up, the original task retook the lock. But because of adaptive > mutexes, as this task takes the lock it notices that the owner is still > running, and it will spin and not sleep. > > Now when the original task releases the lock again, the other task can > take it just like it does on mainline. Now interleave it with a third task of even higher priority that puts the spinner to sleep.