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 7BF59C83F34 for ; Sat, 19 Jul 2025 09:27:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8C7DC6B008A; Sat, 19 Jul 2025 05:27:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 89E356B008C; Sat, 19 Jul 2025 05:27:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7B3CA6B0092; Sat, 19 Jul 2025 05:27:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 690796B008A for ; Sat, 19 Jul 2025 05:27:44 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E564A10FF53 for ; Sat, 19 Jul 2025 09:27:43 +0000 (UTC) X-FDA: 83680486806.24.A9581FC Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf06.hostedemail.com (Postfix) with ESMTP id F21B7180002 for ; Sat, 19 Jul 2025 09:27:41 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aG3Jj5mn; spf=pass (imf06.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752917262; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QqWFgJChad3oM9bzLjXHXfury4l1/Iqz4njVutsiJGA=; b=6JZDj49boXIWakcX4qx2ep5ApUfJFOrkb225WI5056Lt6X32QayM3Y02q3+Z81de+cIrXi M35q6R7JssZPhpm4eiwRnj+wvpkagju1j/3vTz91x64qA38pVDqK3u2Yof8nTfRSrNz/EI 4v6ol0fRFVZ/GgCG/EqMfVArPSeKFgk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752917262; a=rsa-sha256; cv=none; b=iVd5boOIzhKIz2fcEEpsAjj4JkGQYizUVLpjQZNB2hhwi3S9aPwdqJD2OCJcmdl4z2/C+d KfFGO4irbLCuEhAR9Ijr7+Fr6V/Fb79wqZtSLcuQ9RTJCx5RQufzHRSB2ysJgpemksA4B2 nW/rbxuCcje8BAY0DOC4NCci4VXtXs4= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=aG3Jj5mn; spf=pass (imf06.hostedemail.com: domain of david.laight.linux@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=david.laight.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4538bc52a8dso22216025e9.2 for ; Sat, 19 Jul 2025 02:27:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752917260; x=1753522060; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=QqWFgJChad3oM9bzLjXHXfury4l1/Iqz4njVutsiJGA=; b=aG3Jj5mnNfUIbIJkH7RYoATSWSeu7IMA3PR4Vj89wmpBdpXaV2A7Qjs4crlekRrLEE sl6Pcq5s7bJCvCC2qiGD3DS4Gl/zoNt3WL/rB+SO3ty3OBj8gCQWaJCg2a9YkHIw/VtD qD7zE7J2g65t+EON+0AhzZpPwB+6/cXiYSPJPpT347wgJGlZv8Nwvjhca0fGdQI1Jq9O Ktrv+WxQJtlL5lLaWX1q+M8Rppu+MMIU4LUpmOWv2YJLfCEHsDZ6/NIPzWURr0k5E4Za XFXl4MU+KQGSt3IIjc4jKVM0RFetWWG4gOkFq1/mLumQtY1yxCdHHiIybKGc8vpctBUP cpXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752917260; x=1753522060; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QqWFgJChad3oM9bzLjXHXfury4l1/Iqz4njVutsiJGA=; b=fR5As8XtWGZXSLuj/ehWIlv+xUqNm1QwJu3RlSUChVWe7h0FRSzT3p543BhofjALMI 0labs9ugB0bOEbN0y8+eNN3MPBhAHfLA2WlSoU4qeQlkFzB1AFtwvSyGnjbga7PFOap2 hxiOzp6j0Ppg1DLdMIATgLQe0lRDNMP9pY/I64IaHaqnLspDEkpcUGozdNLdfluKLsOQ ui9vY6xzkKNVKbwtUtwbszAa7Ty/1qe5PZogoZ/jO6aRneYNZhu0DGlD32oqFktAr3rF BnnfsMDT2MEckM3T7F1N+Fm5+POgSRVK/ZXkfDOrsSYIZ7E6cgWhI3G+WHcXA7mvlS6u nUKQ== X-Forwarded-Encrypted: i=1; AJvYcCUIgNM+QSwy4Z/X9g6zxjrw9K2tGmMB9ZfBr6RaCR8zuGHLYGsAjlh1Pr72YsAbuEuRuAdbAVJMKw==@kvack.org X-Gm-Message-State: AOJu0YwNW6N4/MOShr7w19c9oXWj8mmBtvCfYW3ITaF0zYTKhyt3CW+O femSNRrPkoRGFOJPY1yQrn+Rhc6csAjGA+zXWPiDU1gPiboLg6PvWhcT X-Gm-Gg: ASbGnctdPO6fPh6Zoo5IoZRi1adgNfDCN4JizM6/PTga3fsfzeWoeNAFIy1YaZP+Lo+ ol9BCI1nWx/YyCTar2AFdkCj4/JjHTb8gEfNALcmAdVUepxSf+BUEQ+olYWJwXERaXybkkRsD2R nlyWTUTeCQFo1zCd/815v1Q9nd6z3TsPOeGSLPtRJEgdt3PMUwwnvU9ekQYhRxqQ5xsJaemntfW B0xz5NZkEBPXz17eDZGWs2i1IHKL+8xZRECpGL1Lc+J2jgWoy3c2wfxvnlCzNIAxrHVS/DxNSM5 jYV/DWEofEscUWMEOe1ZckRXnSC1X4mIwW2iNtBIYVV6Oyic9LxSLD7scIb5EFRxBksk8VjgS6i wPOHRyK6ArH3vI8D6Z2q6DqXp5tBM5j775T3VOC8aHKEbd9D/Y8KU5d5QaYQm X-Google-Smtp-Source: AGHT+IGX36BXd2A2fUDV2jwsQJj5QjbGyvEmFdXGMYvz8lFtHEC3xlgD+mRYMrJ3Udq/9Hh5u0V7oQ== X-Received: by 2002:a05:600c:4e8e:b0:456:1b8b:b8ab with SMTP id 5b1f17b1804b1-4563b8fca24mr60612325e9.30.1752917259983; Sat, 19 Jul 2025 02:27:39 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4562e886286sm104052895e9.26.2025.07.19.02.27.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Jul 2025 02:27:39 -0700 (PDT) Date: Sat, 19 Jul 2025 10:27:38 +0100 From: David Laight To: David Hildenbrand Cc: wang lian , akpm@linux-foundation.org, Liam.Howlett@oracle.com, brauner@kernel.org, broonie@kernel.org, gkwang@linx-info.com, jannh@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, ludovico.zy.wu@gmail.com, p1ucky0923@gmail.com, ryncsn@gmail.com, shuah@kernel.org, sj@kernel.org, vbabka@suse.cz, zijing.zhang@proton.me, ziy@nvidia.com Subject: Re: [PATCH] selftests/mm: reuse FORCE_READ to replace "asm volatile("" : "+r" (XXX));" Message-ID: <20250719102738.06b91a8b@pumpkin> In-Reply-To: References: <20250716151543.998b121a58064011e9ce68cb@linux-foundation.org> <20250717104811.3773-1-lianux.mm@gmail.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: F21B7180002 X-Stat-Signature: oi6kso7fzumchy35koe4uywz8383tx6i X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752917261-162210 X-HE-Meta: U2FsdGVkX1/gkKUlEXXJ1JdojvBInQB6m4dpTMqX6G0qPe1W20lw8ld+Kv3I58qFigDg2VdFwJumSyiW38T4IbNiTxAi8d8vjqIUzA2S0NBaik+KnTJmX4rmer8cI9dwpO7GKtT81PKJoleGmx8njWa6ytU085F1fx34RMAD8KoiMY8xu6o4Q7zVdadS9zY+i52nsXT5tweMz2ydUU3BFv+GdOv50627kCzy788fkE6FOFcGOF4bBZco0AoWdN9F5HtO5vn7nO0/1r2UT3haz1cg/mEqPXIMDuCQbxxn6skjLv2xHQmH4EpbB7HVaAv/LC/15bapNKhh5O69k+Ry5FNEpbIYjlNZ9Ysn+nXJ/+52iXC5ML0hw9idW8kNjDO26+jVEV4Frjc+ahdeGvAGJTOfrSFm7Xo4wa4O0WclrxD1uqXrL7LVqkfR4hEYohEp6br/XEVMrhs+D0nRskuIBaCR6b/x1bjmwed06yw+fJ/vZPRAIljCczVNbAUHccH5srZk9zn2Kq2Ll+YzKjjPmtb/F63Jg9x58Q/+G9zu6n9sT84lV8DcFSimIhdgX4mwTupTOdqnNcDtyKiqoGq+/Hmvaod2Wc0zVE2OegRB+PPpWTnqmk8y4ei2+Q/i4LQEGB2cCrPtIguI98IY/XitI+hWgwxEOgy8ZK042kNcGvPPovwuyH0CYjMH8up48QjXkgcJ0ph1s8xzNKRbpbMPIece/hIcBE6lpPmEZU71hBDOQ2k/6gglpM0884UY+JzHnGpAwXDmsrC2K4St565Rc+iJpO9XR6Yl0hoJAEJ8TiNKIP5WItxE9iJxdJHx8IdWTXWg5brL8gYPKBFIOTpaR1D+Tr57Q8O4QgHKXU2llHFwW54BcP3NNGTl9nfG+eD9rieNfXSq72j9KdWG4Xgb09JY6cwOUTFbPJ+85qvWeKKXCmvZy8x3G1ILsPGFQkL58cwFtumtGWBfqPu+IHK 0zypsV5Z ekUHgeniQV4uGDdh9JOmTPbYC6LDJE+mcEqcAVREqAML2mjO04iSoeLSUGty8bj9F9evj7KDtSNQ9MArzaGVgdZzn4xG6zLHsoWxy40wtZiqLOWEO25iKCWlolI2h5538gwUm6+8RTP9FtWZOhLtzz15tusLUk384rjK13MmZDAf4j3Ub/1VWmbIQvlqnzeRNp9UrdbZTwpSM0jyc9dybq/bl3jT9qKeE4IQJ9TN67PkiPAvX9QnJ6BodKBe1FdVhme6i76EMBAvNYPUh/BBGOr04KJpFYC/5jamQJJrfBPcpug1hscBeM67m7JzW32rHKuHQOld21OofvDCfHpnrdrlOg4iZiLeF0QuXIhbqwh5G2tUGl5wlTl6PIk/1naJe1yMJmWxueWrD7MGjVtQOyLWIM+w4aJs1gW1Xz42UhU5OVsmQ26SOsTlMkXjxqEIsGQlufd2vTykMiWSMvEvsydIn0rWdw4hK1a6J8EZxAf0hPRCRg6V5t7iagC0YC6JOgHK9C5LXxsypa5nM1QZ47SE99BIFTAzvOnH1Qw12e1FRJ6pnhKPbolEl+eSULI3/Ce8jREZabmq57VVsTZGGnetlk2GPzz5AZSCLgV7ZDarZW6s= 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 Thu, 17 Jul 2025 13:43:45 +0200 David Hildenbrand wrote: > On 17.07.25 12:48, wang lian wrote: > >> On Wed, 16 Jul 2025 20:31:26 +0800 wang lian wrote: > > > >>> Several mm selftests use the `asm volatile("" : "+r" (variable));` > >>> construct to force a read of a variable, preventing the compiler from > >>> optimizing away the memory access. This idiom is cryptic and duplicated > >>> across multiple test files. > >>> > >>> Following a suggestion from David[1], this patch refactors this > >>> common pattern into a FORCE_READ() macro > >>> > >>> tools/testing/selftests/mm/cow.c | 30 +++++++++---------- > >>> tools/testing/selftests/mm/hugetlb-madvise.c | 5 +--- > >>> tools/testing/selftests/mm/migration.c | 13 ++++---- > >>> tools/testing/selftests/mm/pagemap_ioctl.c | 4 +-- > >>> .../selftests/mm/split_huge_page_test.c | 4 +-- > >>> 5 files changed, 24 insertions(+), 32 deletions(-) > > > >> The patch forgot to move the FORCE_READ definition into a header? > > > > Hi Andrew, > > You are absolutely right. My apologies for the inconvenience. > > This patch was sent standalone based on a suggestion from David during > > the discussion of a previous, larger patch series. In that original series, > > I had already moved the FORCE_READ() macro definition into vm_util.h. > > > > You can find the original patch series and discussion at this link: > > https://lore.kernel.org/lkml/20250714130009.14581-1-lianux.mm@gmail.com/ > > It should also be in your mailing list archive. > > > > To make this easier to review and apply, I can send a new, small patch series > > that first introduces the FORCE_READ() macro in vm_util.h and then applies this refactoring. > > Please simply perform the move of FORCE_READ() in this very patch where > you also use it elswehere. Why not use READ_ONCE() instead (or even just make all the variables 'volatile char *'). I had to look up the definition to find the hidden indirection in FORCE_READ(). It has to be said that now writes to variables that are READ_ONCE() have to be WRITE_ONCE() why not just make the variables 'volatile'. That will stop things bleating about missing READ/WRITE_ONCE() wrappers. There was a rational for not using volatile, but it is getting to be moot. David > > I missed that when skimming over this patch. >