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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F11F5C98314 for ; Thu, 24 Sep 2026 06:22:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=dq6iKB7XuGLS2dYWQ+BSXdf1EQXXxd6p2s4tq3qcm3s=; b=a5ev1XWbIajyZgLdBMb/yu/8LF LInXUEVhFVwgEWuV08hJFH/1urRtstZwoo7wCrmPtT53/iUpHBkfWWyZd/UMKyCBACG2+MicYjKwd gx3PZn2CsxIkDNvaHNwBL1jPlLjgHkkMnQRZ5v1q3/XtkJdebh59q2Ch08um5LjdnTQtcXUZlXSVj DbL2gZVBuKW9Xze9OvtL14uHQK2giyia9w0alG7pY7CnZfn9xSaQ5nSkUpW5fmVD3dL4LHTmifcd2 l1ZNrk1ElZaMNx1P9E0hWwFfIH4uHR2zQ+r2Us+FglvAmT4ksebpQcYbBQ2HmYkLJCHoK/XCW+gr/ eGGiNr2g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9cqg-0000000A94P-27ZJ; Thu, 24 Sep 2026 06:22:26 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9cqd-0000000A940-3j61 for linux-arm-kernel@lists.infradead.org; Thu, 24 Sep 2026 06:22:25 +0000 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 ED0171516; Wed, 23 Sep 2026 23:22:18 -0700 (PDT) Received: from localhost (a085714.arm.com [10.164.19.28]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B1AEC3F86C; Wed, 23 Sep 2026 23:22:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1790230942; bh=AFiGAJeNuge1xk0RxTH5cvykdnaiOpoKLFWNCrc5VLc=; h=From:To:Cc:Subject:Date:From; b=vZE1pIh7XHDLymm0pnaCEQ9P4YoBtWgq3UdWhQgaXWkxYGUI9iq60w/hwMqzSzuT3 uNDgd1m4sBRWIAiTdTyeV0brmCr/70thUna+DLivbm842BXwzpi9qwHCGu4NL9y0Ka ncU5ydpeYAf7DW5oaa5UwBsKkmuYRakvbxIv2iiM= From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org Cc: Anshuman Khandual , Catalin Marinas , Will Deacon , Ryan Roberts , Mark Rutland , Lorenzo Stoakes , Andrew Morton , David Hildenbrand , Mike Rapoport , Linu Cherian , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH V3 0/4] arm64/mm: Convert pgtable READ_ONCE() as pxdp_get() Date: Thu, 24 Sep 2026 11:52:10 +0530 Message-ID: <20260924062214.1635078-1-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260923_232224_002875_83A107ED X-CRM114-Status: GOOD ( 13.25 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Route READ_ONCE() accesses on pgtable entries via level specific generic MM pxdp_get() helpers which platforms could then override when required. These accessors on arm64, will help in ensuring page table accesses are performed in an atomic manner while reading 128 bit page table entries later. But for now they just default to READ_ONCE(), thus preserving existing behaviour on current D64 translation a well. This is similar to generic MM where all atomic accesses have already been converted from READ_ONCE() into pgtable level specific accessors. These are preparatory patches for D128 enablement, although standing their own for D64 translation as well. These patches are split from earlier D128 V1 series. There are no functional changes here and besides mm kselftests do not show any regression. https://lore.kernel.org/linux-mm/20260729122452.3797443-1-anshuman.khandual@arm.com/ This series applies on v7.3-rc4 but after applying the following patches on pgtable entry print standardization posted earlier. https://lore.kernel.org/linux-mm/20260831054331.625505-1-anshuman.khandual@arm.com/ https://lore.kernel.org/linux-mm/20260916044933.2689426-1-anshuman.khandual@arm.com/ These patches have been hosted here as well. git@git.gitlab.arm.com:linux-arm/linux-anshuman.git (arm64_pxdp_get_v3) Changes in V3: - Added overrides for pxdp_get() and replaced remaining READ_ONCE() - Updated all commit messages as required - Dropped previous tags Changes in V2: https://lore.kernel.org/all/20260922061638.3967467-1-anshuman.khandual@arm.com/ - Rebased on v7.3-rc4 along with all latest dependencies - Updated commit messages per Ryan - Added tags from Ryan Changes in V1: https://lore.kernel.org/all/20260903060657.2717457-1-anshuman.khandual@arm.com/ Cc: Catalin Marinas Cc: Will Deacon Cc: Ryan Roberts Cc: Mark Rutland Cc: Lorenzo Stoakes Cc: Andrew Morton Cc: David Hildenbrand Cc: Mike Rapoport Cc: Linu Cherian Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org Anshuman Khandual (4): arm64/mm: Use pmdp_get() for PMD accesses arm64/mm: Use pudp_get() for PUD accesses arm64/mm: Use p4dp_get() for P4D accesses arm64/mm: Use pgdp_get() for PGD accesses arch/arm64/include/asm/pgtable.h | 40 +++++++++++++++++---- arch/arm64/mm/fault.c | 8 ++--- arch/arm64/mm/fixmap.c | 6 ++-- arch/arm64/mm/hugetlbpage.c | 10 +++--- arch/arm64/mm/kasan_init.c | 18 +++++----- arch/arm64/mm/mmu.c | 60 ++++++++++++++++---------------- arch/arm64/mm/pageattr.c | 8 ++--- arch/arm64/mm/trans_pgd.c | 14 ++++---- 8 files changed, 95 insertions(+), 69 deletions(-) -- 2.43.0