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 B9A46C10F1B for ; Wed, 28 Dec 2022 02:09:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 589D78E0002; Tue, 27 Dec 2022 21:09:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 539D48E0001; Tue, 27 Dec 2022 21:09:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3DA508E0002; Tue, 27 Dec 2022 21:09:24 -0500 (EST) 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 2B6D18E0001 for ; Tue, 27 Dec 2022 21:09:24 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id F104EC0309 for ; Wed, 28 Dec 2022 02:09:23 +0000 (UTC) X-FDA: 80290083006.11.28A951B Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id 5A3B91C0006 for ; Wed, 28 Dec 2022 02:09:22 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=aeWc+l1u; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672193362; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=P5+k8xAbZk05u94NgigArqSOR+L5o5oc55ht3hRddcE=; b=arZDtN59dkobTQWxdxjAsKHfcXXq7Ctz7VtoaoP8LEWvfzxcs85MgmssFk2C4sPqRnEEe6 RSte+r5I45qrgo5hz5hqX1rTuajHjkMmNLLEQD+QXBIb/Jj9NyIjdkcxchq4PfQ0YWgF1G VK9asWiEuq3zK5p2OBg07LZuoN6sHRQ= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=aeWc+l1u; spf=pass (imf18.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672193362; a=rsa-sha256; cv=none; b=hxTnCNAnfma0VAh0sITGsTbfFnlIO1lrtukD7XWK4w8xQDWkOBHU7tDU++GHK9b1OUudzN BAvu0wRsVTbtk6WPu7Qi11AAVcWkSCCxtiuWxDH+o5Tbysd8A9bdbRbsKlLrm+TQAeGJFK Nu1nyFx+qE76NNyn3DptmU571sdubNA= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 554F6612C9; Wed, 28 Dec 2022 02:09:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7F904C433D2; Wed, 28 Dec 2022 02:09:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1672193361; bh=0+9mbLzHdVINwOD8vgA/LPr1HjdwcqowwuSzxvl7dXI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aeWc+l1u/GpeRN6IHZfdLNkL8f8QnVLmPhoDo3v7jJ5UYL/GYcKP7FF3ARl0YfVRp w3873WEAGUoq7z/E5YbwvCHXk75rJ+c44eesw3h6fylZTk1UEBb3Py3e2raHxojxQm bkNqVLJ6n7lKQMRuXR77bf7Xm/gJr5hyYA0KViggYysry68z67sUte+xPFApUAeX5w aOPcDHXvCq3Rdgklwu88jKx988Gn5cUdQdNxoc7mwt/4ndbeslOR+5bY8C52qt7JFT C9pUKBfrC1T8ncUFsUj2F3dDXgYAiSQOMlD5ghOxS2ooCetb4GWnZsLoHLsXEmR20j UUHQYNhlt+MjA== From: SeongJae Park To: Miaohe Lin Cc: SeongJae Park , akpm@linux-foundation.org, alexander.h.duyck@linux.intel.com, paulmck@kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] mm/page_reporting: replace rcu_access_pointer() with rcu_dereference_protected() Date: Wed, 28 Dec 2022 02:09:18 +0000 Message-Id: <20221228020919.1511138-1-sj@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <4bc4ab74-3ccd-f892-b387-d48451463d3c@huawei.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: rfok4f76u5dxhphskih3wp1fydzf489u X-Rspam-User: X-Rspamd-Queue-Id: 5A3B91C0006 X-Rspamd-Server: rspam06 X-HE-Tag: 1672193362-129171 X-HE-Meta: U2FsdGVkX1/QCJipFuJMWTwf7owD6zqZeNOocEIFOUw/JlwXZoywJUiOWyS4jkVhqyT3yn5XGkZbPUrEDCm5E/GmVRE3wvvSDwfWieBmkbuv3GDOzzCKWkBMQCk38DjN2pSBqVTbUAf+lukRKxtrE4s7keLgWOeBcdM4dM/9Urt398Iot0bkXUzhS2LpNNhll3pmHnqhyLy5bwA8qLy2+0MqjKVgXNSVqTCSMrNZs28yzUCx9JcDQ63d5FLezrDpNiDamow9ER6MBPoZ3DVH/QVuTJsKM7o3AzKDa2jsO0UW7/yrZ3x6PCNxjQwVgYd8Q/LoXQKhD2RuVIg/ionuLnhsxjx5huZOmAIUcZOo3a1rJDMnVc9lvU8mT/eX+HmUNVk9UdG88jbds+1GVDAJPqp2zXYeiwEKBaYHvNvVBv2QVMxWbz5d4b90x5AcRJk69oF1S5OZWAVxITWoFY7Xu5nyhwgH8HcWIfKSDfQ+ukjTuLNH79kzChKK06yjTCqs/sH92ZfvevOMgLdnkD0VDHsjONu/viATCgrC/u7BjOzsJDMIHkcBcqFud2G+ub95oeg/h/TVyU7TwndEls1xAulOA2/CDmpBJXDn268Yqg8DDkOBFr6TqSCFRRCeld7slVDR1kyqrYj0ft34ZUPfF89jL4zNWGRXch0l2d8YwNDnRp217zs8izSresdH6VAPvBlSjevrt9cNoSHWQctoCs7lVBhfruApGKUHAWwNGYj+BiG+uKkNXelZJ6+ITThrwmC4LLY96qGxqqWDZxOJsGHeY/oQz0kEWeXPC2d/MdbQRYhU9u4aX9LQbO5dc0ohuakCyv1SchDb9gEI680UUJzC34Xruit5P9EI8qFycGO32z0lXRXMjnQJRXDLvjNmCnK5KFVKhEEblQyee77zupoxWrKERy/1eAEt77KjAchFUynVuXOxB6/jQpmLQ3MnB6dcYI2o91LT4LC/O7b dhwV2gKi SrthmW1afOleEE6ZnaUp+36HFYrvrWliNrYweYuu6drRer01i/L6XVPZgE6znj1/PBFUSCg+3fi9Pe4yEd+SBo5t/braYrdtnn43vAePYS/pRDlusxdziPcACNg== 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: On Wed, 28 Dec 2022 09:45:00 +0800 Miaohe Lin wrote: > On 2022/12/28 9:29, SeongJae Park wrote: > > Page reporting fetches pr_dev_info using rcu_access_pointer(), which is > > for safely fetching a pointer that will not be dereferenced but could > > concurrently updated. The code indeed does not dereference pr_dev_info > > after fetcing it using rcu_access_pointer(), but it fetches the pointer > > Thanks for your work. Might something to improve. > > s/fetcing/fetching/ > > > while concurrent updtes to the pointer is avoided by holding the update > > s/updtes/updates/ Thank you! I shall add these to scripts/spelling.txt. > > > side lock, page_reporting_mutex. > > > > In the case, rcu_dereference_protected() is recommended because it > > provides better readability and performance on some cases, as > > rcu_dereference_protected() avoids use of READ_ONCE(). Replace the > > rcu_access_pointer() calls with rcu_dereference_protected(). > > > > Signed-off-by: SeongJae Park > > --- > > Changes from v1 > > (https://lore.kernel.org/linux-mm/20221227192158.2553-1-sj@kernel.org/) > > - Explicitly set the protection condition (Matthew Wilcox) > > > > mm/page_reporting.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/mm/page_reporting.c b/mm/page_reporting.c > > index 79a8554f024c..5c557a3e1423 100644 > > --- a/mm/page_reporting.c > > +++ b/mm/page_reporting.c > > @@ -356,7 +356,8 @@ int page_reporting_register(struct page_reporting_dev_info *prdev) > > mutex_lock(&page_reporting_mutex); > > > > /* nothing to do if already in use */ > > - if (rcu_access_pointer(pr_dev_info)) { > > + if (rcu_dereference_protected(pr_dev_info, > > + lockdep_is_held(&page_reporting_order))) { > > I think it should be lockdep_is_held(&page_reporting_mutex) instead of > lockdep_is_held(&page_reporting_order) here? You're right, thank you for finding this. I will fix these in the next version. Thanks, SJ > > Thanks, > Miaohe Lin