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 DA984C46CD4 for ; Wed, 27 Dec 2023 14:12:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4D76C6B0071; Wed, 27 Dec 2023 09:12:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4881F6B0072; Wed, 27 Dec 2023 09:12:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2DB6D6B0074; Wed, 27 Dec 2023 09:12:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1F9646B0071 for ; Wed, 27 Dec 2023 09:12:25 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D34031A05D5 for ; Wed, 27 Dec 2023 14:12:24 +0000 (UTC) X-FDA: 81612788208.17.B9E4C5A Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by imf17.hostedemail.com (Postfix) with ESMTP id 219DB4000F for ; Wed, 27 Dec 2023 14:12:22 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Clg5Xt7T; spf=pass (imf17.hostedemail.com: domain of 3xjCMZQgKCIszx27tDw3v33v0t.r310x29C-11zAprz.36v@flex--kinseyho.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3xjCMZQgKCIszx27tDw3v33v0t.r310x29C-11zAprz.36v@flex--kinseyho.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703686343; 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=vxNY2VrPCY3idyTMpJR/1ttR0VD4PODSyqOS/F6YoNY=; b=JebYl7dyisSHx7YLq/oQO0TruiJXchnIy2Xe0e1VMwhmRRbym7beFgMJoyhoAOkefow+/l gDdlD9Paf9uJ+Hbb888jG87Ss/bioNylcAf4O10cO37yz3l9TyE1Opjdt2XG6fFMjGr9RS Bc7bqrL5U5hWi31Ac9tr8QhfthwYYBc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703686343; a=rsa-sha256; cv=none; b=NQ2noVfKip80ZQqyDjwNC6gWMUcU7Aalg/G404XSzLOxCpRZij44d5QpfNnoGg8IV32ffE dDP3WsOfszi5r6eypxTNtrPgQmr42QD9YbPiG1CnmcXBmsGxnZOE6IAPNMSPnUDm7niwYP fCmJA36AQhFXkc8se6ApD0MmyncDV5M= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=Clg5Xt7T; spf=pass (imf17.hostedemail.com: domain of 3xjCMZQgKCIszx27tDw3v33v0t.r310x29C-11zAprz.36v@flex--kinseyho.bounces.google.com designates 209.85.128.202 as permitted sender) smtp.mailfrom=3xjCMZQgKCIszx27tDw3v33v0t.r310x29C-11zAprz.36v@flex--kinseyho.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-5eb6dba1796so49054657b3.1 for ; Wed, 27 Dec 2023 06:12:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1703686342; x=1704291142; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=vxNY2VrPCY3idyTMpJR/1ttR0VD4PODSyqOS/F6YoNY=; b=Clg5Xt7TTdoSTsWZtaHm6WY7Q68oU4/2ymD2gCTUxyiow9uuxwAc8SdJNRibaYvM5F 9HM3KtYqBrYSi7sEI4gcOzkIl7ozdnARvaTsut20I5PU9Vh9So4wlTrtpDyHV8oMdwhf /4Zcr6Y5p9aSNR2Z9QvC7DCKUp7vPQaRWSIYlBhWWSyt67c5JZmSRnoQ54m936+D2Rpy 97upG33YOlb2ptWB0OZh32QbxZK9Hgcyi4Z/HEYrsMGrtwh1oX1TpWcK+M2y/ZqIFcAR xAVZ4MJgYLqtmupXvOT6DfAi7wr24HxoUlTMYNoxrr80YG/cMvVCHUwIvaUwei8EsYqK RXbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703686342; x=1704291142; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vxNY2VrPCY3idyTMpJR/1ttR0VD4PODSyqOS/F6YoNY=; b=lVLCw/MCvNxHFTR6QrYC+brrjveqGliG3+slOVzMci7IQWDJdKLqUsw+QBTiXZF9L2 xEKga+yIXR2bqX0nZxBKn4zTXVEtJjup4rkRWXh/b3M28WFC7C3Mt7nELQldZ7RFvVku Df0KM+myMD9EfjQJwd0o4OZaJSKBNPbkU9KX8LRgVUxqhmOkqQ7dYMV6pNW9V5s4dMCc dSoFHngh8KhLjNfGjBDInSmz69C7Ng9J1lDFoRHb2PyVeJcgoHKa7ykbYgaZzigClHha iQp/pFFsi7ygLoHsKxgkECbi8vXpR8dWSiiE/KuuTSrou8qVnyyE5I9dLNe/WEozl4WA MWZw== X-Gm-Message-State: AOJu0YzAiY0yEtHRXgolRmkMmFr/cqoXy3cfzd6ckQoQNVxar6YvYRVd YVYhXJdmZ6YSj9sgxXWW/eRYNS6l4VovqhrF6YIf X-Google-Smtp-Source: AGHT+IE8RZKKQ6O+mMRizNvr6qVSWpnv3WsoTuWDou54DQMqnSDnrrx19+W2dXLZBRg+Aq6wz1/HHo13u5Bc1A== X-Received: from kinseyct.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:46b]) (user=kinseyho job=sendgmr) by 2002:a25:8201:0:b0:db5:4a39:feb8 with SMTP id q1-20020a258201000000b00db54a39feb8mr3392529ybk.8.1703686342353; Wed, 27 Dec 2023 06:12:22 -0800 (PST) Date: Wed, 27 Dec 2023 14:12:01 +0000 In-Reply-To: <20231227141205.2200125-1-kinseyho@google.com> Mime-Version: 1.0 References: <20231227141205.2200125-1-kinseyho@google.com> X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Message-ID: <20231227141205.2200125-2-kinseyho@google.com> Subject: [PATCH mm-unstable v4 1/5] mm/mglru: add CONFIG_ARCH_HAS_HW_PTE_YOUNG From: Kinsey Ho To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yu Zhao , Donet Tom , "Aneesh Kumar K . V" , Kinsey Ho Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 219DB4000F X-Rspam-User: X-Stat-Signature: nkdj31jgr86mhb3seng57fk7sauaamho X-Rspamd-Server: rspam03 X-HE-Tag: 1703686342-934673 X-HE-Meta: U2FsdGVkX19u5dbUjaCZ1xxDItCkbN0rdIp2hFKmBWRDd76RE0p68CoZ+kHV1bQMqSrSrx+CHuBv4Mb0S+S+LtO7Qkw/3FQssxidS754sqmh0ro2bas6tMZk3yFuefzGslRJurrDJTVKGMpFPRPzziZzL20QQCs5ShAWt6XFeSUt9SU1lHPSolRn7F1wIGi7S4v5Fe/thcdDBDSizvCImVgdK0IkjSX+a60CiKhwJzdeRE6C07S4Am7Z7k6mws3fdB6ntkkGvhQq4vJGdH3ce8aOZYo/UFRvIh5nuL9FjdmDcrNTU4ZVzkcfXwRs5E7B4Uq8x07/rIlCyXJg4Jr0pmgF/I2b4XAnHLHOSyLnaVGJXzlU2zhB8VYkTcbAC9N8xn3Dvt125/gq4O+pdK2JqYuibzObexE2QlXe2izyDqNj3Au6N7aVYy9inwxODNDdjWdbQfrIXQx1PI2u0OnrXxxhlORkHqyHQxcfhifr5Nf4EGEBoOk/x5v1GVKfans3YoiBDBQFOeVOpP4wsEJMSt8W4KBsugaqs1GJfpsyxpEJOR+UyVmk2vEjldDcnfMNbbAlp97RsaHOK0I4OyKEUhuVJB8TAlmb0f4AkeUY/+gdvXh5wSdDKb8a/yyoZuRKTngPeGiwwL/TUdqMBcmt72qiKbUIZqcRnd8SUen6L9iXGjeRLrO9yGsi1arv3B1iPN6WWWC6wcV8JDP4FHqBydoM2SgHcPdpFHDIE5Go5tT1otmsdDJNksuvTvjSKILwzHQuuZv1UQgYQmBMpkEHyoXOEkBU7MzWJZk4M1Hy03sZRYljLnYhIVLKtrYraOGJgzpxlJMdXBp+yTzdr9anpQ9DmXO8F2tRR6pVnD9PrOYnpVXv2vjPEnxvkl/f/hw7q3m1sgkaPYTxx5VH1kCaEKl8tutfWhns9D9Rng+ENL6bXjp1DyARvQfo5m8Dx9RxPLAndBU77dxEtKc1fXT 7G/uemgw wkhrCEydPfMuhk+m3iqCoxqE1dguQhiGB1rjktFYSfVKq+LhwZGwtstdLvnEfRNvHGFdA5gSVch61Cj3bffMkRunWuwC8ihOwNmiB494lIymI6Up79nxhLRy4K//tKK7IytEXZPVwVV26JdocJMSzaA0XMD0yFMcAZxBxrTibh/sRIbhPb2FRQPSxeoHIQm25iG2WuZKkgR2svUBpGNR/0e37O1vpX/SASp9iKpdnt5r/R4OO1uKLVGxk3U6cMOm839Gh4UrUqFTtHTHbb7bWWs6S3UANnzzDJ0BP+sFAcTby2Ndpb5uIFU8VjalPckRh5BDVnhXgV9UYtyQ4Kp70PrFgi/urTgcOxaMa+BMXn3f9xix3uYuKJE5IuirMQtHUz2xv0k+UNE6TizmK3pHSZz+u3TIBeaiOrbQeW97K+yQJxG+s3V0XPNPXKDWymQh/8Zmvh0Ex99WdLnENRlznzt95gqyDoJitQhuApoSsexkSUVE9OeCXyihPkejP5lNaQueff5J5/DEFyI/K8jGObthYopI8S6dOr7AjI7P6BUpy3Ps8setEWvSlqj2y3jmjt0x1ejumEc3W1pnSNIswGLOquadBLyk0fHv2QvRwTq3eorL4la/+hSDYUi9jzH0RLyAKLWrl+E2NMkerW3OK2Zvc69D4NVDNo4MN3EhaMhg+l8bXIZGmPDgq/REJPXqbCXu2 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: Some architectures are able to set the accessed bit in PTEs when PTEs are used as part of linear address translations. Add CONFIG_ARCH_HAS_HW_PTE_YOUNG for such architectures to be able to override arch_has_hw_pte_young(). Signed-off-by: Kinsey Ho Co-developed-by: Aneesh Kumar K.V Signed-off-by: Aneesh Kumar K.V Tested-by: Donet Tom Acked-by: Yu Zhao --- arch/Kconfig | 8 ++++++++ arch/arm64/Kconfig | 1 + arch/x86/Kconfig | 1 + arch/x86/include/asm/pgtable.h | 6 ------ include/linux/pgtable.h | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index f4b210ab0612..8c8901f80586 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -1470,6 +1470,14 @@ config DYNAMIC_SIGFRAME config HAVE_ARCH_NODE_DEV_GROUP bool +config ARCH_HAS_HW_PTE_YOUNG + bool + help + Architectures that select this option are capable of setting the + accessed bit in PTE entries when using them as part of linear address + translations. Architectures that require runtime check should select + this option and override arch_has_hw_pte_young(). + config ARCH_HAS_NONLEAF_PMD_YOUNG bool help diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 7b071a00425d..12d611f3da5d 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -36,6 +36,7 @@ config ARM64 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE select ARCH_HAS_PTE_DEVMAP select ARCH_HAS_PTE_SPECIAL + select ARCH_HAS_HW_PTE_YOUNG select ARCH_HAS_SETUP_DMA_OPS select ARCH_HAS_SET_DIRECT_MAP select ARCH_HAS_SET_MEMORY diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 1566748f16c4..04941a1ffc0a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -88,6 +88,7 @@ config X86 select ARCH_HAS_PMEM_API if X86_64 select ARCH_HAS_PTE_DEVMAP if X86_64 select ARCH_HAS_PTE_SPECIAL + select ARCH_HAS_HW_PTE_YOUNG select ARCH_HAS_NONLEAF_PMD_YOUNG if PGTABLE_LEVELS > 2 select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64 select ARCH_HAS_COPY_MC if X86_64 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 57bab91bbf50..08b5cb22d9a6 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -1679,12 +1679,6 @@ static inline bool arch_has_pfn_modify_check(void) return boot_cpu_has_bug(X86_BUG_L1TF); } -#define arch_has_hw_pte_young arch_has_hw_pte_young -static inline bool arch_has_hw_pte_young(void) -{ - return true; -} - #define arch_check_zapped_pte arch_check_zapped_pte void arch_check_zapped_pte(struct vm_area_struct *vma, pte_t pte); diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index af7639c3b0a3..9ecc20fa6269 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -375,7 +375,7 @@ static inline bool arch_has_hw_nonleaf_pmd_young(void) */ static inline bool arch_has_hw_pte_young(void) { - return false; + return IS_ENABLED(CONFIG_ARCH_HAS_HW_PTE_YOUNG); } #endif -- 2.43.0.472.g3155946c3a-goog