From patchwork Mon Dec 4 02:23:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luming Yu X-Patchwork-Id: 1871343 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=patchwork.ozlabs.org) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Sk6v44ZHfz23mf for ; Mon, 4 Dec 2023 13:24:48 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Sk6v41PGpz3cR4 for ; Mon, 4 Dec 2023 13:24:48 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=shingroup.cn (client-ip=43.155.80.173; helo=bg5.exmail.qq.com; envelope-from=luming.yu@shingroup.cn; receiver=lists.ozlabs.org) Received: from bg5.exmail.qq.com (bg5.exmail.qq.com [43.155.80.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Sk6tp5LW0z3c4t for ; Mon, 4 Dec 2023 13:24:34 +1100 (AEDT) X-QQ-mid: bizesmtp82t1701656598t8frmqyu Received: from HX09040029.powercore.com.cn ( [58.34.117.194]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 04 Dec 2023 10:23:15 +0800 (CST) X-QQ-SSF: 01400000000000402000000A0000000 X-QQ-FEAT: hkpyk8INzQP5z8rsiS8kuwoY6xUdsRY8dW9WQcjJFdXel2qTU+ejDRcm6VyqC imh5Q0H5tFQijQhHaHLm0yo1zrgD2CtTy18O7IcZqVUghlE0gaZWgQDhPrlnVPOFnaEO7zC alJqNiPdXhaIesMDJkgqolVaLUKWezM+6qDO2jl2pnqJNzpZP2BwzSu9kDdnA2TAu4t8yNe i9tSPXYA7TrFaBpa3Eg4KbljeeX8cBB41xekY2eP0Iz4ZkeqB+k+kE8Vf6+hc2pm8XxV3fR o2iGDYNltm/I8WG/R83ot9cZSxCoCDEOBQQ/YhOAtKEvkinQ8AtAA3nbD/26WCW2JiNrPP/ TSm8QIFMZfYlhC5WELPdSSAL3EbU9D7Gc5fxBTtn+OfUkwVlw7NZmQjQkxAnEN2YKELPWZs X-QQ-GoodBg: 2 X-BIZMAIL-ID: 18421861491899950962 From: Luming Yu To: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu Subject: [PATCH 1/2] powerpc/locking: implement this_cpu_cmpxchg local API Date: Mon, 4 Dec 2023 10:23:01 +0800 Message-ID: <0EFBD0242622180B+20231204022303.528-1-luming.yu@shingroup.cn> X-Mailer: git-send-email 2.42.0.windows.2 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: shenghui.qu@shingroup.cn, Luming Yu , dawei.li@shingroup.cn, ke.zhao@shingroup.cn, luming.yu@gmail.com Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" ppc appears to have already supported cmpxchg-local atomic semantics that is defined by the kernel convention of the feature. Add this_cpu_cmpxchg ppc local for the performance benefit of arch sepcific implementation than asm-generic c verison of the locking API. Signed-off-by: Luming Yu --- arch/powerpc/include/asm/percpu.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/arch/powerpc/include/asm/percpu.h b/arch/powerpc/include/asm/percpu.h index 8e5b7d0b851c..ceab5df6e7ab 100644 --- a/arch/powerpc/include/asm/percpu.h +++ b/arch/powerpc/include/asm/percpu.h @@ -18,5 +18,22 @@ #include #include +#include +#ifdef this_cpu_cmpxchg_1 +#undef this_cpu_cmpxchg_1 +#define this_cpu_cmpxchg_1(pcp, oval, nval) __cmpxchg_local(raw_cpu_ptr(&(pcp)), oval, nval, 1) +#endif +#ifdef this_cpu_cmpxchg_2 +#undef this_cpu_cmpxchg_2 +#define this_cpu_cmpxchg_2(pcp, oval, nval) __cmpxchg_local(raw_cpu_ptr(&(pcp)), oval, nval, 2) +#endif +#ifdef this_cpu_cmpxchg_4 +#undef this_cpu_cmpxchg_4 +#define this_cpu_cmpxchg_4(pcp, oval, nval) __cmpxchg_local(raw_cpu_ptr(&(pcp)), oval, nval, 4) +#endif +#ifdef this_cpu_cmpxchg_8 +#undef this_cpu_cmpxchg_8 +#define this_cpu_cmpxchg_8(pcp, oval, nval) __cmpxchg_local(raw_cpu_ptr(&(pcp)), oval, nval, 8) +#endif #endif /* _ASM_POWERPC_PERCPU_H_ */ From patchwork Mon Dec 4 02:23:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luming Yu X-Patchwork-Id: 1871344 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=2404:9400:2:0:216:3eff:fee1:b9f1; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=patchwork.ozlabs.org) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2404:9400:2:0:216:3eff:fee1:b9f1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Sk7241NK0z23n4 for ; Mon, 4 Dec 2023 13:30:52 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Sk7240mjsz3cPS for ; Mon, 4 Dec 2023 13:30:52 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=shingroup.cn (client-ip=114.132.124.171; helo=bg1.exmail.qq.com; envelope-from=luming.yu@shingroup.cn; receiver=lists.ozlabs.org) X-Greylist: delayed 372 seconds by postgrey-1.37 at boromir; Mon, 04 Dec 2023 13:30:41 AEDT Received: from bg1.exmail.qq.com (bg1.exmail.qq.com [114.132.124.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Sk71s4nsxz3c4t for ; Mon, 4 Dec 2023 13:30:41 +1100 (AEDT) X-QQ-mid: bizesmtp82t1701656608ty8azrma Received: from HX09040029.powercore.com.cn ( [58.34.117.194]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 04 Dec 2023 10:23:21 +0800 (CST) X-QQ-SSF: 01400000000000402000000A0000000 X-QQ-FEAT: uGhnJwy6xZKw3HYMUMtltLGm75iKrd0p9Mg4/P8rycRmhTyVbD11w/SP4bnWS xkFnJqlin6yip5DFMzorO23bnDYDqkAa53H9SKei1jG30ThzFmOQ18rKB6knc7iBaOurEBi UtMz5/WbYXY3fsMQDLbBnzr/Gk8cj/hbb6LaM+djjX4aqDdSRKUrFqm6F3xqzMT4iswY4Ll uN2cZS6upIg85/ItXCf7i8HmVr/8RUqeKPWo01J4b8yvLwUbKgqvbcfv3SGNK+QWkn7J+1q eg4TcD2f2WYioztZpfXgvgXyesSPrhHxjzm3hAJQevs/h/aRXPliziDbZFRF5yvoenE2F3M zEHEllLyrEKYGf1QczFwrAqeWeDfFXfUlvUpk0sGCNZ0GIQx8E01V+qwqZ09TNwUPbF9VeF JweGbcYAIaU= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 17993081573831466038 From: Luming Yu To: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu Subject: [PATCH 2/2] powerpc/locking: enable HAVE_CMPXCHG_LOCAL in kconfig Date: Mon, 4 Dec 2023 10:23:02 +0800 Message-ID: <4250629DA95C6D4F+20231204022303.528-2-luming.yu@shingroup.cn> X-Mailer: git-send-email 2.42.0.windows.2 In-Reply-To: <20231204022303.528-1-luming.yu@shingroup.cn> References: <20231204022303.528-1-luming.yu@shingroup.cn> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:shingroup.cn:qybglogicsvrgz:qybglogicsvrgz5a-1 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: shenghui.qu@shingroup.cn, Luming Yu , dawei.li@shingroup.cn, ke.zhao@shingroup.cn, luming.yu@gmail.com Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" enable arch feature HAVE_CMPXCHG_LOCAL for ppc by default Signed-off-by: Luming Yu --- arch/powerpc/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 6f105ee4f3cf..c10229c0243c 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -226,6 +226,7 @@ config PPC select HAVE_ARCH_SECCOMP_FILTER select HAVE_ARCH_TRACEHOOK select HAVE_ASM_MODVERSIONS + select HAVE_CMPXCHG_LOCAL select HAVE_CONTEXT_TRACKING_USER select HAVE_C_RECORDMCOUNT select HAVE_DEBUG_KMEMLEAK