From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751946AbbH1KtJ (ORCPT ); Fri, 28 Aug 2015 06:49:09 -0400 Received: from casper.infradead.org ([85.118.1.10]:55706 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751635AbbH1KtI (ORCPT ); Fri, 28 Aug 2015 06:49:08 -0400 Date: Fri, 28 Aug 2015 12:48:54 +0200 From: Peter Zijlstra To: Boqun Feng Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Ingo Molnar , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Thomas Gleixner , Will Deacon , "Paul E. McKenney" , Waiman Long Subject: Re: [RFC 3/5] powerpc: atomic: implement atomic{,64}_{add,sub}_return_* variants Message-ID: <20150828104854.GB16853@twins.programming.kicks-ass.net> References: <1440730099-29133-1-git-send-email-boqun.feng@gmail.com> <1440730099-29133-4-git-send-email-boqun.feng@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1440730099-29133-4-git-send-email-boqun.feng@gmail.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 Fri, Aug 28, 2015 at 10:48:17AM +0800, Boqun Feng wrote: > +/* > + * Since {add,sub}_return_relaxed and xchg_relaxed are implemented with > + * a "bne-" instruction at the end, so an isync is enough as a acquire barrier > + * on the platform without lwsync. > + */ > +#ifdef CONFIG_SMP > +#define smp_acquire_barrier__after_atomic() \ > + __asm__ __volatile__(PPC_ACQUIRE_BARRIER : : : "memory") > +#else > +#define smp_acquire_barrier__after_atomic() barrier() > +#endif > +#define arch_atomic_op_acquire(op, args...) \ > +({ \ > + typeof(op##_relaxed(args)) __ret = op##_relaxed(args); \ > + smp_acquire_barrier__after_atomic(); \ > + __ret; \ > +}) > + > +#define arch_atomic_op_release(op, args...) \ > +({ \ > + smp_lwsync(); \ > + op##_relaxed(args); \ > +}) Urgh, so this is RCpc. We were trying to get rid of that if possible. Lets wait until that's settled before introducing more of it. lkml.kernel.org/r/20150820155604.GB24100@arm.com