Received: by 2002:a05:7412:e79e:b0:f3:1519:9f41 with SMTP id o30csp229518rdd; Wed, 22 Nov 2023 14:18:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IHlzmJ8so7mETq6N3JDJF2yyxrVnXP1+ct3sPNeheP9+ikLt511Gishl9/ARpFbnCvVAsIe X-Received: by 2002:a54:4416:0:b0:3b6:701b:97f3 with SMTP id k22-20020a544416000000b003b6701b97f3mr3521835oiw.57.1700691508396; Wed, 22 Nov 2023 14:18:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700691508; cv=none; d=google.com; s=arc-20160816; b=KcT7VhC917Nzy/FQ7Me3mBDUF+fnnE1WLuOmSVXW4G3wbDdgq2EWRjcE/akCrfngq/ UduOyOuJpq6XtW0eEoXu/fiHEBWwPDoW+P4dVqPP9dvy8rML8zYKfYCe7ABDZ57i/qce 4n7PwNK4klD5peYKlQwp7gpistxjA8IjhPfz86RfCVkp0yXxKjRjGYiF5CRFryfdjl1B 0ZV1zB5kFKi5Oy4bvcP1B9GaFM59QU3qSi3XVLPC5DaoVxhlxGTagBYSg+r2FzGUPY1j RHjsu5OuCRWDXIfqCNYJg+agzNC1Tqwi+MI5IDH4G/CChd9SA7G+cuZG6t4grB7hVhHH 7O2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=bsusiiGhl02BeEQaPcWWKA7x+/AtrgtKDvrNIQNlAvM=; fh=RexX9hd3OuOG7woPsSxitS1Zdzq11A4l4LQyhXVFOd0=; b=OdwSI7E/4sgl7MFbGHgyZuF8CogZe3oRyepkYi96r2PgWOJhwSiS/E6RODZd/D8Htp BuzYoR9rX0cg+jE/agjINranqHo2qXxMvLZDhSYEt93jHwx5L7wKaDHDrDGt32ef8p10 4XpTcjarDYwnpsSk1mcz8PwhN98WWnFh0A2r9h+xS2irnx3fHGwrbtVBcF3qQQVw9SSu FWAATBXHAuvHUMjyqBBa84wBzdj0Qnggv8m/axywMZxQEyB0pHBrqAY/NO/3mnh882hz BBsQK9yBIH6hoM8c29HJktLC7vFOIiQ+WWO0/VeMK2yL323rlr6o5gFxlrfHQclzav+1 snvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=TytTOb0H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id x1-20020a63fe41000000b00563d9ff5157si11773pgj.547.2023.11.22.14.18.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 14:18:28 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=TytTOb0H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id D3894801D4A1; Wed, 22 Nov 2023 14:17:25 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235132AbjKVWRY (ORCPT + 99 others); Wed, 22 Nov 2023 17:17:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233574AbjKVWRW (ORCPT ); Wed, 22 Nov 2023 17:17:22 -0500 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3CF2AD; Wed, 22 Nov 2023 14:17:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700691438; x=1732227438; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=yeWZ3BdyhhUuU0VGr46b+afl1WUFwAC0SYpHXwdB+Hk=; b=TytTOb0Hvr0RYxSd5pH2lysLrVqd5uo8v66ICqCi48x3GtIV5NFlhx7B Ucq8MsPCTD/JNfk35ybIBxw8vxYtGnDvYkqdksOlZQpy897d5MqfuHncG KjE7ngxMnhPrGFhG8NtKdF0gyC5JXRf2wSyVbLJyy6+Qjwl9f2lwUw72N dwxL/VKf3BitDRUocQUlo+4Wj/6r9nOk5prorxq7y8IoC6+aFUqZyEMn2 pjoAUMvx+huD3kNCJrqR+Np2CkOWxEFdhGKBu16+74BIM2YfWjH0IdJHr QEmVQ+KcwHg2VIHAf7NLzUnVaCMwQMxWK/4neudT/tMP4OTHhNiFwoy99 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="382553921" X-IronPort-AV: E=Sophos;i="6.04,219,1695711600"; d="scan'208";a="382553921" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2023 14:17:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10902"; a="770797680" X-IronPort-AV: E=Sophos;i="6.04,219,1695711600"; d="scan'208";a="770797680" Received: from aconradi-mobl.ger.corp.intel.com (HELO intel.com) ([10.251.221.156]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2023 14:17:10 -0800 Date: Wed, 22 Nov 2023 23:17:07 +0100 From: Andi Shyti To: "wuqiang.matt" Cc: ubizjak@gmail.com, mark.rutland@arm.com, vgupta@kernel.org, bcain@quicinc.com, jonas@southpole.se, stefan.kristiansson@saunalahti.fi, shorne@gmail.com, chris@zankel.net, jcmvbkbc@gmail.com, geert@linux-m68k.org, andi.shyti@linux.intel.com, mingo@kernel.org, palmer@rivosinc.com, andrzej.hajda@intel.com, arnd@arndb.de, peterz@infradead.org, mhiramat@kernel.org, linux-arch@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-openrisc@vger.kernel.org, linux-trace-kernel@vger.kernel.org, mattwu@163.com, linux@roeck-us.net Subject: Re: [PATCH v3 1/5] arch,locking/atomic: arc: arch_cmpxchg should check data size Message-ID: References: <20231121142347.241356-1-wuqiang.matt@bytedance.com> <20231121142347.241356-2-wuqiang.matt@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231121142347.241356-2-wuqiang.matt@bytedance.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 22 Nov 2023 14:17:26 -0800 (PST) Hi Wuqiang, On Tue, Nov 21, 2023 at 10:23:43PM +0800, wuqiang.matt wrote: > arch_cmpxchg() should check data size rather than pointer size in case > CONFIG_ARC_HAS_LLSC is defined. So rename __cmpxchg to __cmpxchg_32 to > emphasize it's explicit support of 32bit data size with BUILD_BUG_ON() > added to avoid any possible misuses with unsupported data types. > > In case CONFIG_ARC_HAS_LLSC is undefined, arch_cmpxchg() uses spinlock > to accomplish SMP-safety, so the BUILD_BUG_ON checking is uncecessary. > > v2 -> v3: > - Patches regrouped and has the improvement for xtensa included > - Comments refined to address why these changes are needed > > v1 -> v2: > - Try using native cmpxchg variants if avaialble, as Arnd advised > > Signed-off-by: wuqiang.matt > Reviewed-by: Masami Hiramatsu (Google) > --- > arch/arc/include/asm/cmpxchg.h | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arc/include/asm/cmpxchg.h b/arch/arc/include/asm/cmpxchg.h > index e138fde067de..bf46514f6f12 100644 > --- a/arch/arc/include/asm/cmpxchg.h > +++ b/arch/arc/include/asm/cmpxchg.h > @@ -18,14 +18,16 @@ > * if (*ptr == @old) > * *ptr = @new > */ > -#define __cmpxchg(ptr, old, new) \ > +#define __cmpxchg_32(ptr, old, new) \ > ({ \ > __typeof__(*(ptr)) _prev; \ > \ > + BUILD_BUG_ON(sizeof(*(ptr)) != 4); \ > + \ > __asm__ __volatile__( \ > - "1: llock %0, [%1] \n" \ > + "1: llock %0, [%1] \n" \ > " brne %0, %2, 2f \n" \ > - " scond %3, [%1] \n" \ > + " scond %3, [%1] \n" \ > " bnz 1b \n" \ > "2: \n" \ > : "=&r"(_prev) /* Early clobber prevent reg reuse */ \ > @@ -47,7 +49,7 @@ > \ > switch(sizeof((_p_))) { \ > case 4: \ > - _prev_ = __cmpxchg(_p_, _o_, _n_); \ > + _prev_ = __cmpxchg_32(_p_, _o_, _n_); \ > break; \ > default: \ > BUILD_BUG(); \ > @@ -65,8 +67,6 @@ > __typeof__(*(ptr)) _prev_; \ > unsigned long __flags; \ > \ > - BUILD_BUG_ON(sizeof(_p_) != 4); \ > - \ I think I made some comments here that have not been addressed or replied. Thanks, Andi > /* \ > * spin lock/unlock provide the needed smp_mb() before/after \ > */ \ > -- > 2.40.1