Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755055AbbB0Te1 (ORCPT ); Fri, 27 Feb 2015 14:34:27 -0500 Received: from foss.arm.com ([217.140.101.70]:44060 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752612AbbB0Te0 (ORCPT ); Fri, 27 Feb 2015 14:34:26 -0500 Date: Fri, 27 Feb 2015 19:33:58 +0000 From: Mark Rutland To: Pranith Kumar Cc: Catalin Marinas , Steve Capper , Will Deacon , open list , "linux-arm-kernel@lists.infradead.org" Subject: Re: [RFC PATCH] ARM64: cmpxchg.h: Clear the exclusive access bit on fail Message-ID: <20150227193358.GF9011@leverpostej> References: <1425016026-19766-1-git-send-email-bobby.prani@gmail.com> <20150227100612.GB3628@arm.com> <20150227183301.GL17949@e104818-lin.cambridge.arm.com> <20150227190800.GE9011@leverpostej> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2140 Lines: 47 On Fri, Feb 27, 2015 at 07:15:57PM +0000, Pranith Kumar wrote: > On Fri, Feb 27, 2015 at 2:08 PM, Mark Rutland wrote: > > On Fri, Feb 27, 2015 at 06:44:19PM +0000, Pranith Kumar wrote: > >> On Fri, Feb 27, 2015 at 1:33 PM, Catalin Marinas > >> wrote: > >> > It's either badly formatted or I don't get it. Are the "stxr x1" and > >> > "stxr x7" happening on the same CPU (P0)? If yes, that's badly written > >> > code, not even architecturally compliant (you are not allowed other > >> > memory accesses between ldxr and stxr). > >> > >> OK. Is that the same case with ldaxr (acquire) and stlxr (release)? > >> AFAIK, memory accesses between acquire and release exclusive > >> operations are allowed. > > > > The restriction on memory accesses in the middle of a load-exclusive > > store-exclusive sequence applies to all the load/store-exclusive > > variants, including ldaxr and stlxr. > > > > Thanks Mark. I am trying to see where this restriction is documented. > Looking at: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/a64_data_transfer_alpha.html > I do not see that mentioned. The only restriction relevant is that a > stxr should use the same address as the most recent ldxr. > > Could you please point me to the relevant documentation? You will need to look at the latest ARMv8-A Architecture Reference Manual [1]. Table B2-2 defines the set of Load-Exclusive and Store-Exclusive variants, including LDAXR and STLXR. Taking this into account, take a look at the restrictions in section B2.10.5 "Load-Exclusive and Store-Exclusive instruction usage restrictions". One of the bullet points nodes that software must avoid explicit memory accesses between a Load-Exclusive instruction and the associated Store-Exclusive. Thanks, Mark. [1] http://infocenter.arm.com/help/topic/com.arm.doc.ddi0487a.e/index.html -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/