From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2367C54791 for ; Wed, 13 Mar 2024 17:21:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33A5480052; Wed, 13 Mar 2024 13:21:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EA34940010; Wed, 13 Mar 2024 13:21:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1B24B80052; Wed, 13 Mar 2024 13:21:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 0CEC7940010 for ; Wed, 13 Mar 2024 13:21:49 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D647DA09EB for ; Wed, 13 Mar 2024 17:21:48 +0000 (UTC) X-FDA: 81892683096.30.B3F1296 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf12.hostedemail.com (Postfix) with ESMTP id 013724000C for ; Wed, 13 Mar 2024 17:21:46 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nnNlYLBO; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of nathan@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=nathan@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710350507; a=rsa-sha256; cv=none; b=b+2Uc08fPz52eFka1UEaC5hGo4rKBJbQTzCLjpx9eKqNk2P1Tu6CLPqVI11tgupeRAj2hg OWRkYn6LBgSXlFz/4UIQpsENDZAxkALbXFbY2/2FLjAuxRWzze+Iqd9XyYvCVNHL9JAW8a tOCyJQWogGGhjkJix0Eally0Byfj+c8= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=nnNlYLBO; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf12.hostedemail.com: domain of nathan@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=nathan@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710350507; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=meN4TraCAUyhgG0bR4ydRoJvnL+ogtmsnkujDynm3LQ=; b=YFjnqgRH017V7Gr0cmsj/iDPHsY9mfV2kYuJJDoccvIk9viARU4D6PPs1P0e728u1h30Nd dsW9FzPOKG/4itq6R63y3WeiEpkIhyW9Aqg8q6zt12XdU3ujC9pB8xm2pRMxSSzZ32qc9h lgRRNbdwJ3PbJdyMqIuegeJ5HDWEo5c= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 06535CE1B75; Wed, 13 Mar 2024 17:21:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB54FC433F1; Wed, 13 Mar 2024 17:21:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710350503; bh=2+HrNPQNNrVW2SJnqA5HjU8yBIrVF6D+riwSfpUrNxw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=nnNlYLBOEBemLClK28M3tirohPxrI8276u9bgKJNFG7AT4s1MUEOQIyZgoGzSD12+ ZvZR4ab6rf/N/GYcd2cEyziyM5H1Nr3IgUNtc5XE310ejJK2Rvpg1N24u5EWuRN/g/ T2Dt7Scnc0QZf2f5qhWSa3pBA3lec6w1jaPeTCj6QwyNVmtgrNgfMG/TAOAq02Qs2D 2n6NvKzuuH/k/Wmf+9ao4Azr0QhIA3vts5c0bYjjTMPOnJCBtYrAPT4KATDTb1YeMt pCTL2EvdQykyihCSponjrJmQyX8TqE8zopRYMDCeHS7Enzt/Dcovtpo+O1XCio1eAo j6VkmEIRpYMRw== Date: Wed, 13 Mar 2024 10:21:41 -0700 From: Nathan Chancellor To: Qiang Zhang Cc: Andrew Morton , Nick Desaulniers , Bill Wendling , Justin Stitt , linux-mm@kvack.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Stable@vger.kernel.org Subject: Re: [PATCH] memtest: use {READ,WRITE}_ONCE in memory scanning Message-ID: <20240313172141.GB3064248@dev-arch.thelio-3990X> References: <20240312080422.691222-1-qiang4.zhang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240312080422.691222-1-qiang4.zhang@intel.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 013724000C X-Stat-Signature: w763oxjszbkh1789fi6niuiimmrbptsk X-HE-Tag: 1710350506-761259 X-HE-Meta: U2FsdGVkX1/pONX6l65LCJG7ax1w7XxgzNbJ7zU8zJo7CwXXIyxR5Vdj3PxNx+2mC49H3riwGS7mYT46Kf92jeA2douZuIvZunFi3KnjaYtWCiSaXE+3XdxmadMaDX9F7BGYL/xwamTE/PXYBGtVCqVyP3ZqLJjGZ7NQwICIabYQvJaZ6uK9rODfW02Dn09p5+IvrO3cbyc+2s/Uq9bag6/96J/ekj08oS+U/U7fg3HrhUrFLr8odj+K7fis3UR2osWWjC6UNt34f6YvPFUcupOwBg/rmdD78D7GXHa/i/y2Uj1MkyY7Oi341LOiiXLMkwf+ZWqpFg4GpjUFGxJ4qR5eECYQmIw2YGiayfcvo5pGfBUvBl1y7Vn5khwC8n/YETb78MlnUHDxMVfDcZVB9YPui0tukVi+Ytrsz4DkXuoTWK3wbbE8ry/0h9x3NG4T4qrhg3qJ1rgbnmmNZMoLvJLtXVveWgSz50qrClBg2aHjnRkvLpxhWEpxRL3VA+m3IV4wXGNDakWLGp5GIRoYK5emc05nuskdu1DOYjDBhIvKdKEUgwP0ggzJ+aorHz4ZAaUCpFuNihPW4p9UXS6tgF317PfHVTpyu8ECYOPFRMaJSCnAASXpcnb3LfJzYSqCDbAMHO858xeUNnqUL62JvQZG80gRF9lqIx9kHADUcnRq6Xt08CiEaUwMSDB7m9TfVo0+jnosuhqM7h8uyiNXbMmD5gYQLy/rm83VW+lPnTLqy/e/A6TVM5CeRFQbow5EhWKLW/1HynGoB5HM+k2DeK180wHu1+CNxP75DmIG0aZfQVuikmmKjTwJ5JJB1D7Ins/ex+xDeAsyZqEHK1suieNlW4BWlIJjbiRKGhSWUwKnTH6BoS09ZhboyLSiwrkjzuj5n4KT2XVe3ex9uI1WxUR4eZhqVFewjqxX+cgByTZ9XN5/8SnAMw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Mar 12, 2024 at 04:04:23PM +0800, Qiang Zhang wrote: > memtest failed to find bad memory when compiled with clang. So use > {WRITE,READ}_ONCE to access memory to avoid compiler over optimization. This commit message is severely lacking in details in my opinion, especially for a patch marked for stable. Did a kernel or LLVM change cause this (i.e., has this always been an issue or is it a recent regression)? What is the transformation that LLVM does to break the test and why is using READ_ONCE() or WRITE_ONCE() sufficient to resolve it? > Cc: > Signed-off-by: Qiang Zhang > --- > mm/memtest.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/memtest.c b/mm/memtest.c > index 32f3e9dda837..c2c609c39119 100644 > --- a/mm/memtest.c > +++ b/mm/memtest.c > @@ -51,10 +51,10 @@ static void __init memtest(u64 pattern, phys_addr_t start_phys, phys_addr_t size > last_bad = 0; > > for (p = start; p < end; p++) > - *p = pattern; > + WRITE_ONCE(*p, pattern); > > for (p = start; p < end; p++, start_phys_aligned += incr) { > - if (*p == pattern) > + if (READ_ONCE(*p) == pattern) > continue; > if (start_phys_aligned == last_bad + incr) { > last_bad += incr; > -- > 2.39.2 >