From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752023AbcDRKTx (ORCPT ); Mon, 18 Apr 2016 06:19:53 -0400 Received: from e28smtp02.in.ibm.com ([125.16.236.2]:53372 "EHLO e28smtp02.in.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751216AbcDRKTv (ORCPT ); Mon, 18 Apr 2016 06:19:51 -0400 X-IBM-Helo: d28relay08.in.ibm.com X-IBM-MailFrom: xinhui@linux.vnet.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org Message-ID: <5714B4B7.2050005@linux.vnet.ibm.com> Date: Mon, 18 Apr 2016 18:19:35 +0800 From: Pan Xinhui User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Arnd Bergmann , linuxppc-dev@lists.ozlabs.org CC: Peter Zijlstra , Boqun Feng , linux-kernel@vger.kernel.org, Paul Mackerras , Thomas Gleixner Subject: Re: [PATCH] powerpc: introduce {cmp}xchg for u8 and u16 References: <570752AA.9050603@linux.vnet.ibm.com> <20160412143023.GH1087@worktop> <570E2A45.9080702@linux.vnet.ibm.com> <10192543.Wmc5qtLitu@wuerfel> In-Reply-To: <10192543.Wmc5qtLitu@wuerfel> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-TM-AS-MML: disable x-cbid: 16041810-0005-0000-0000-00000C09A095 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2016年04月17日 03:43, Arnd Bergmann wrote: > On Wednesday 13 April 2016 19:15:17 Pan Xinhui wrote: >> Hello Peter, >> >> On 2016年04月12日 22:30, Peter Zijlstra wrote: >>> On Sun, Apr 10, 2016 at 10:17:28PM +0800, Pan Xinhui wrote: >>>> >>>> On 2016年04月08日 15:47, Peter Zijlstra wrote: >>>>> On Fri, Apr 08, 2016 at 02:41:46PM +0800, Pan Xinhui wrote: >>>>>> From: pan xinhui >>>>>> >>>>>> Implement xchg{u8,u16}{local,relaxed}, and >>>>>> cmpxchg{u8,u16}{,local,acquire,relaxed}. >>>>>> >>>>>> Atomic operation on 8-bit and 16-bit data type is supported from power7 >>>>> >>>>> And yes I see nothing P7 specific here, this implementation is for >>>>> everything PPC64 afaict, no? >>>>> >>>> Hello Peter, >>>> No, it's not for every ppc. So yes, I need add #ifdef here. Thanks for pointing it out. >>>> We might need a new config option and let it depend on POWER7/POWER8_CPU or even POWER9... >>> >>> Right, I'm not sure if PPC has alternatives, but you could of course >>> runtime patch the code from emulated with 32bit ll/sc to native 8/16bit >>> ll/sc if present on the current CPU if you have infrastructure for these >>> things. >>> >> seems interesting. I have no idea about how to runtime patch the code. I will try to learn that. >> If so, we need change {cmp}xchg into uninline functions? > > I think you don't need to, see do_feature_fixups()/patch_feature_section() > Hello, Arnd thanks for your tips :) I will take a look at them. This time I will make generic functions for all ppc. But in future, We will runtime patch the code. > Note that an #ifdef by itself has to worry about any combination of > architectures, so in a kernel that has both POWER6 and POWER7 enabled, > you cannot call the POWER7-only function. > seems your are right. While I think it's not a good idea to enable several cpu types. just select the minimum supported cpu in real world. :) thanks xinhui > Arnd >