Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp8609rdh; Wed, 22 Nov 2023 16:09:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IEd3zRtPVwxsYy+qReqJOA96VBPMW2CVTyBn3r4UaixoXfs7FXOkATxpxzD91JP6iMpwImZ X-Received: by 2002:a05:6a00:13aa:b0:6cb:ba66:8c77 with SMTP id t42-20020a056a0013aa00b006cbba668c77mr1685917pfg.4.1700698196439; Wed, 22 Nov 2023 16:09:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700698196; cv=none; d=google.com; s=arc-20160816; b=QFPMkt9Az5aWP5geqrJaD1wk7Qf+8iOXfQeemQgXGDoBogk0K4Wosx4rvUlfqYKv1w NBi2ZedIutDByVnv3MCJsRDrUogGDmk042l4ZOFmLi/N+x2ICRuja3QhBEyPAoMoTT3G ulTxZ/W/kiMx5ZYJNjVAxXC3JjHgsKeLjhSP0xF1FVfCa4i9TlIBku6eaDxSDpwRnHFE /fQOSsSTSZiYr5mA4Qy2ZSJxmI7E/cZoOSQoJNqrVBZnNNUoZretr/hOXHkQkUK2x0jt l0aTzx3X7IWhH4ZLyAKVlm4O/b+OkfespWXTPHVG9vaj+LSmZQsqbNSIr8PDjMETb7YL 3mOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:autocrypt :from:content-language:references:cc:to:subject:user-agent :mime-version:date:message-id:dkim-signature; bh=HfvvVEoo2ZPc5Eo27do8s9IpqY2QyXGUUCVk7yAwMCQ=; fh=/vTs+WmOyXb0TVfKCE+lYpkGW8bUZpY/rhu9F3vy0bM=; b=ngWh7xvSPDTEp1B2GwKwnlC8Omj0fs9l6HCbeAdJyCo3zg5MfQZS4hJ7+iRg9SsxYc nD6dV4HTTk6WEp7W9OAmponRbB7Sj2FAeMgoGEVc2NjCixNh0O6CjCRLqyW6SIFuo/Iu ZPVjsWyahQNiVn8UH86foWo4t3U5Zwmd+Dwr5NhW+oswjh1+OSwRrkrQjzJbJ7oD8G4w dluNw0IUxPJHoc73e9CcF+lRhzYSigM6PwMx+NYJQSJ0EG0f0fIqoK2QS97qGQDGQQy8 wpLY1YyA3gm317ubpK3u8M69fG2Sp+Z7+wg0f1gsDOrz4NTwTFQYghPWU93948bdmjO6 9pDw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b="FB/eQVfx"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id h14-20020a056a00230e00b006cb88a284dfsi121737pfh.164.2023.11.22.16.09.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Nov 2023 16:09:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b="FB/eQVfx"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 0B9C680658F1; Wed, 22 Nov 2023 16:07:32 -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 S229548AbjKWAH2 (ORCPT + 99 others); Wed, 22 Nov 2023 19:07:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229453AbjKWAH0 (ORCPT ); Wed, 22 Nov 2023 19:07:26 -0500 Received: from mail-pg1-x52b.google.com (mail-pg1-x52b.google.com [IPv6:2607:f8b0:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9241C18E for ; Wed, 22 Nov 2023 16:06:58 -0800 (PST) Received: by mail-pg1-x52b.google.com with SMTP id 41be03b00d2f7-5c1acc1fa98so1089795a12.0 for ; Wed, 22 Nov 2023 16:06:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1700698018; x=1701302818; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=HfvvVEoo2ZPc5Eo27do8s9IpqY2QyXGUUCVk7yAwMCQ=; b=FB/eQVfx4L2birSzTSyuoaAhbyXX2lHnKBeODR1ogS3Kj37iPbhwdmlJySLWAdihs0 QbSzzqt3KhUI9/bTaK5mXqPC4y/fA5NzjM685n5nhClIHBqkxT6qrKKmNHZ1/h3JFnUt u50J8MwTR6GtniIIWX0zkFOCRQbAts54NXZ8NcXb2/61EbNjMw8AC4ztHoVK1ONVrbxe CWPW3ldXfEVOYeK/AFSoD/JOkWbNWzfW1eDMO9cv0nw6dPFRCseqIiAzuXp9pxzetCjL 7BV2tniMZp1D6lkR2A57QiCyXEUn41Zsck8fq4y+L117NNLnTH67vwOxOMwA+f4xO/9E SrIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700698018; x=1701302818; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=HfvvVEoo2ZPc5Eo27do8s9IpqY2QyXGUUCVk7yAwMCQ=; b=ofOhFHwzYP52s3/Jp08dNRMaI2PFRHU/LvH3J9sc5BwrxVRVOe8N2RaMtisgCCu2su MlONQP3rTVpJA/XF1Y4PMIo3GFFSqsYgjf2IO2cBUF4F6QuCzWjdaT9DOlKtGkL/7Oqd j5XNYvFcoAPdYQVsnvZinVf9QFrpGBY9SLf0uWSPt0z0pz1VerCmWFyrD1uZx6v/FWKk LdNffbD4VbJabjeJ+9SoE4f7IA84UO5107oT8x1ZdOVPuqu2Gf3gOIExIWaSrEhJElIj 6qaBO4qP4IRN19ksf5Sjl5GiUktW0cCyFJecTidicoPvVXYhq9BVc6kRhx5r+EFUnQOr PNfQ== X-Gm-Message-State: AOJu0YzpBQDnCoJq7VG346N1p/Yu2R1syIRJ3tq+kxO1U48En3Raz+ba 1wzcAEetlZUrSJKieCAkPMfwLw== X-Received: by 2002:a17:90b:1b03:b0:280:23e1:e4dd with SMTP id nu3-20020a17090b1b0300b0028023e1e4ddmr1418778pjb.17.1700698018004; Wed, 22 Nov 2023 16:06:58 -0800 (PST) Received: from ?IPV6:2606:4700:110:82f3:5936:4753:3e8:2d8d? ([2a09:bac5:21b2:1246::1d2:2c]) by smtp.gmail.com with ESMTPSA id z3-20020a170902ee0300b001cc2ebd2c2csm253083plb.256.2023.11.22.16.06.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Nov 2023 16:06:57 -0800 (PST) Message-ID: Date: Thu, 23 Nov 2023 08:06:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 1/5] arch,locking/atomic: arc: arch_cmpxchg should check data size To: Andi Shyti 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, 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 References: <20231121142347.241356-1-wuqiang.matt@bytedance.com> <20231121142347.241356-2-wuqiang.matt@bytedance.com> Content-Language: en-US From: "wuqiang.matt" Autocrypt: addr=wuqiang.matt@bytedance.com; keydata= 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 4mCJUdEkdwCS In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable 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 16:07:32 -0800 (PST) Hello Andi, On 2023/11/23 06:17, Andi Shyti wrote: > 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 BTW, the changelog should be in the cover letter. I'll correct it in next version, so don't bother resending to make more noises. >> 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. Sorry that I haven't seen your message. Could you resend ? I rechecked my mailbox and the mailing lists, but no luck. > Thanks, > Andi Regards, Wuqiang > >> /* \ >> * spin lock/unlock provide the needed smp_mb() before/after \ >> */ \ >> -- >> 2.40.1