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 8C9CCC35FF4 for ; Tue, 17 Sep 2024 08:44:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 139726B0089; Tue, 17 Sep 2024 04:44:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0E8BF6B008A; Tue, 17 Sep 2024 04:44:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F19D86B0092; Tue, 17 Sep 2024 04:44:38 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D51B96B0089 for ; Tue, 17 Sep 2024 04:44:38 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 2962814010B for ; Tue, 17 Sep 2024 08:44:38 +0000 (UTC) X-FDA: 82573594236.21.29CA1C4 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf29.hostedemail.com (Postfix) with ESMTP id 85AB9120008 for ; Tue, 17 Sep 2024 08:44:36 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1726562553; 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; bh=8MoBY2qcuoA5Z94WXm5yDqlSxud4TgMUS+E92tZ4kSQ=; b=D34mcsKy2hZbqoB4UXurL/qXNpEQrAN0u7ymgt0oRkvihtC+KJaR98/FBhHW90kIdEFv5Q 8f5ODKc0IMUQiMflCLqDISwiX/4tHD95hCZerOXjHUumwvdzL6aU/bBOnr9QUVrDREvggh DWT+vNTHoSsVHWl9e4lT0IzhSoU4txw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1726562553; a=rsa-sha256; cv=none; b=fWZ1aiuVFpXDE2Yxqtz17/20V6rzhAaGIXjPMMbBbaoEsV4U0dOrCzc1pPmvt7YL3ytfQj 9TZIqYy856DTK3uN28ftTPynao/mYUSsSIOq6859n2wDk4APMaN4bhJ+7pO+ddSlGabjk4 xcRDezFfMgaYZeha6g0q4teMz/ZoXV4= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F0B8EDA7; Tue, 17 Sep 2024 01:45:04 -0700 (PDT) Received: from [10.57.83.157] (unknown [10.57.83.157]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EBC1D3F66E; Tue, 17 Sep 2024 01:44:33 -0700 (PDT) Message-ID: <45084868-0a09-4c57-81b0-f59a1ca292db@arm.com> Date: Tue, 17 Sep 2024 09:44:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V2 3/7] mm: Use ptep_get() for accessing PTE entries Content-Language: en-GB To: Anshuman Khandual , linux-mm@kvack.org Cc: Andrew Morton , David Hildenbrand , "Mike Rapoport (IBM)" , Arnd Bergmann , x86@kernel.org, linux-m68k@lists.linux-m68k.org, linux-fsdevel@vger.kernel.org, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org References: <20240917073117.1531207-1-anshuman.khandual@arm.com> <20240917073117.1531207-4-anshuman.khandual@arm.com> From: Ryan Roberts In-Reply-To: <20240917073117.1531207-4-anshuman.khandual@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 85AB9120008 X-Stat-Signature: 3unqbpgzhfrbmktebgrt3mt8j4mw7pwq X-Rspam-User: X-HE-Tag: 1726562676-180315 X-HE-Meta: U2FsdGVkX18IbyZV43ypdnDC/Y5nYZqrcNtyQUWbTqsC1Fyug9YJQw9BNUOnGDa/mccPmbhAnfjeHZ4O2idcMgg+ZZ/i15ChoEBfhacMMgh2uY7GrpTo68wDtZdFSLTd0Yu5qhzFmDv5Ub+67mmoRqZSg67FeDP8L297w/6Dt9HtCQibaFqLAzHs3ar5WGDfXmXN4253diC+lBn87m6qjdIhy4djfPR70YUiA1MnlhsYMmRSJWh/1moW4QIR70fbFCEtfcazsjrN+eR10+7bZjFpaoaCOHK7nqUigs3AK4KHg4RRR9X7FfOpXeH2QVZASLDiiD0a4ySzkQpRUduzt3XqmdW+BQwXbEBNxn1e75TSvksmzjCtpzIPUj0slCLtZTFKcHQt5nR9FpM41eEzUBd64B/OZ6JLEBmdEyI5QZ6Hwyz7CyVwmEV12VRb/XseqS+u7GpLaGTr+imSR5cWFXqI4jVR75GeI0/hm2C46raZwp9sKvSNj1R0MAP3w4z7OuxrDBmZ9mTiKdbPWTAo9Wn5CvMH/WuOuY1wScuisIoTcMZan9Qi2Y8p7c90uj2Te2X32m1/+J2ZK17OIBI/P8FdbBwEkjDdZpMscUBQMFtfP9KrjsyIbPHAfbhzHSjy9iI6SqTQUHfTsKjhEhq3GJjMhkj02dj5LRP4qakE9kJH/INh6TIPTWhwMt6IFDaNvn02rqhiHaAePZBjnDzreFH4qBjaTjNryj5JMHjeo+2v+NwXloPuwTACUQPfbzDn9I1R9GQNuQzsZMKJdvoJFut2oFoG+d3FwfgSRLG87c8DvPj3n2STdC95AnEs63tcXBPgUCQn7nS4UnEzI+5igCUZsTzLu+nfwMqOyp6r8PdVJmnzujVj0Z4zF7nxeJsAFxGdMF83niBDZy2qhoCAe3hP4jGnafCI3URGDz2Pu6IyZDREkM7kolifvXGJumS991P2ch8Pz69kdGBFkeq d8Z2Ugnr NmJcK9GIaogbaVhrN2nCmeypSZESapt6/SlFMSCxhJadZ78ggPRry42eDeY2QqYiqIn48qLZ3eGoNoNx1QTgXUMBgq6SJzW6j7KVvacZ/wd5lNeo7alH/mn9xK7NZe/BITB6YUTKKSbVGRLgVUDeSHdr+W6AU/w+FSoLFjDzE/eAwsV8f4A00xYneU+P05yBYEvtzeMuuxu7TDBxNLZr+d+hwHlNL+eoBm38BPGWbzQ3747FR9dvshCrHRIldHLOCNCmBA6CsZJ3SrdViVK/2pzVyMmFdo3yZdOolFkvUA3UMtdQ0DWkH5NQZ/FxMQs0btb/fY40vPR5eMEpus60LnDjFtODZL+w5plF7Meq/H3nQHL2/GeT6WmJuQxUgqhIJAMsQ13+iIGUDUslH9QBprVZ3ncwPOyqgR2OI 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 17/09/2024 08:31, Anshuman Khandual wrote: > Convert PTE accesses via ptep_get() helper that defaults as READ_ONCE() but > also provides the platform an opportunity to override when required. This > stores read page table entry value in a local variable which can be used in > multiple instances there after. This helps in avoiding multiple memory load > operations as well possible race conditions. > > Cc: Andrew Morton > Cc: David Hildenbrand > Cc: Ryan Roberts > Cc: "Mike Rapoport (IBM)" > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Anshuman Khandual Reviewed-by: Ryan Roberts > --- > include/linux/pgtable.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h > index 2a6a3cccfc36..547eeae8c43f 100644 > --- a/include/linux/pgtable.h > +++ b/include/linux/pgtable.h > @@ -1060,7 +1060,8 @@ static inline int pgd_same(pgd_t pgd_a, pgd_t pgd_b) > */ > #define set_pte_safe(ptep, pte) \ > ({ \ > - WARN_ON_ONCE(pte_present(*ptep) && !pte_same(*ptep, pte)); \ > + pte_t __old = ptep_get(ptep); \ > + WARN_ON_ONCE(pte_present(__old) && !pte_same(__old, pte)); \ > set_pte(ptep, pte); \ > }) >