From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933939AbcI2Ot4 (ORCPT ); Thu, 29 Sep 2016 10:49:56 -0400 Received: from bombadil.infradead.org ([198.137.202.9]:48891 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933661AbcI2Ots (ORCPT ); Thu, 29 Sep 2016 10:49:48 -0400 Date: Thu, 29 Sep 2016 16:49:37 +0200 From: Peter Zijlstra To: Thomas Gleixner Cc: Steven Rostedt , mingo@kernel.org, juri.lelli@arm.com, xlpang@redhat.com, bigeasy@linutronix.de, linux-kernel@vger.kernel.org, mathieu.desnoyers@efficios.com, jdesfossez@efficios.com, bristot@redhat.com, Ingo Molnar Subject: Re: [PATCH -v2 1/9] rtmutex: Deboost before waking up the top waiter Message-ID: <20160929144937.GA5016@twins.programming.kicks-ass.net> References: <20160926123213.851818224@infradead.org> <20160926124127.863639194@infradead.org> <20160926111511.1d963075@grimm.local.home> <20160926152228.GE5016@twins.programming.kicks-ass.net> <20160926113503.7d0528de@grimm.local.home> <20160926113727.4c08c58c@grimm.local.home> <20160926154112.GH5016@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Sep 29, 2016 at 10:43:54AM -0400, Thomas Gleixner wrote: > On Mon, 26 Sep 2016, Peter Zijlstra wrote: > > > On Mon, Sep 26, 2016 at 11:37:27AM -0400, Steven Rostedt wrote: > > > On Mon, 26 Sep 2016 11:35:03 -0400 > > > Steven Rostedt wrote: > > > > > > > Especially now that the code after the spin_unlock(&hb->lock) is now a > > > > critical section (preemption is disable). There's nothing obvious in > > > > futex.c that says it is. > > > > > > Not to mention, this looks like it will break PREEMPT_RT as wake_up_q() > > > calls sleepable spin locks. > > > > What locks would that be? > > None :) > > It still breaks RT in the futex case due to: > > deboost = rt_mutex_futex_unlock(); > > spin_unlock(&hb->lock); > .... Yeah, noticed that already. Am currently trying to untangle the pi_state locking rules.