From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755444Ab3LJR02 (ORCPT ); Tue, 10 Dec 2013 12:26:28 -0500 Received: from merlin.infradead.org ([205.233.59.134]:56498 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755010Ab3LJR01 (ORCPT ); Tue, 10 Dec 2013 12:26:27 -0500 Date: Tue, 10 Dec 2013 18:25:28 +0100 From: Peter Zijlstra To: "Paul E. McKenney" Cc: linux-kernel@vger.kernel.org, mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, darren@dvhart.com, fweisbec@gmail.com, sbw@mit.edu, Ingo Molnar , Oleg Nesterov , Linus Torvalds , Will Deacon , Tim Chen , Waiman Long , Andrea Arcangeli , Andi Kleen , Michel Lespinasse , Davidlohr Bueso , Rik van Riel , Peter Hurley , "H. Peter Anvin" , Arnd Bergmann , Benjamin Herrenschmidt Subject: Re: [PATCH v5 tip/core/locking 5/7] Documentation/memory-barriers.txt: Downgrade UNLOCK+LOCK Message-ID: <20131210172528.GQ12849@twins.programming.kicks-ass.net> References: <20131210012738.GA24317@linux.vnet.ibm.com> <1386638883-25379-1-git-send-email-paulmck@linux.vnet.ibm.com> <1386638883-25379-5-git-send-email-paulmck@linux.vnet.ibm.com> <20131210131422.GG12849@twins.programming.kicks-ass.net> <20131210171247.GQ4208@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20131210171247.GQ4208@linux.vnet.ibm.com> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Dec 10, 2013 at 09:12:47AM -0800, Paul E. McKenney wrote: > > The way I read the above it says that you need > > smp_mb__after_unlock_lock() when the UNLOCK and LOCK are on the same > > variable. That doesn't make sense, I thought that was the one case we > > all agreed on it would indeed be a full barrier without extra trickery. > > On x86, sure, but smp_mb__after_unlock_lock() is nothingness on x86 > anyway. Other architectures might benefit from requiring that the > smp_mb__after_unlock_lock() be used in this case. Confused, UNLOCK X, LOCK X, must always be fully serializing. That's the entire purpose of the thing. The only place you can go play games (and clearly we are going there) is when the UNLOCK and LOCK are on different variables.