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 7F985C46CD4 for ; Wed, 20 Dec 2023 04:01:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D15706B0078; Tue, 19 Dec 2023 23:01:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CC5DA6B007B; Tue, 19 Dec 2023 23:01:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B672F6B007D; Tue, 19 Dec 2023 23:01:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A1F5F6B0078 for ; Tue, 19 Dec 2023 23:01:08 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7D3D08049D for ; Wed, 20 Dec 2023 04:01:08 +0000 (UTC) X-FDA: 81585846216.14.BD970FC Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) by imf08.hostedemail.com (Postfix) with ESMTP id B53A016001C for ; Wed, 20 Dec 2023 04:01:05 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PUTgRyCH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of 3AGeCZQgKCAsvty3p9szrzzrwp.nzxwty58-xxv6lnv.z2r@flex--kinseyho.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3AGeCZQgKCAsvty3p9szrzzrwp.nzxwty58-xxv6lnv.z2r@flex--kinseyho.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703044865; 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=wTWOqyfMsQnqPpUH1dExxKEsGutDkMUJttQEhdAsH5o=; b=2/eEudg4PH/G68lYiyMinAVAAvYJlwwS9FzEAYN/UAUP9En+wIO+SfhiF7ceeYdw3ASUc3 AKEa5pBDU63jjTadBHmcTnRrF0fDEL44kwYleVedMt2uIiT5dqzEE/ch2FHGFe+zvtpY1Y uOS/4CqCIoIvz/9oP5PAEbYeyPB1RLs= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=PUTgRyCH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of 3AGeCZQgKCAsvty3p9szrzzrwp.nzxwty58-xxv6lnv.z2r@flex--kinseyho.bounces.google.com designates 209.85.214.202 as permitted sender) smtp.mailfrom=3AGeCZQgKCAsvty3p9szrzzrwp.nzxwty58-xxv6lnv.z2r@flex--kinseyho.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703044865; a=rsa-sha256; cv=none; b=zF85yA8TyyEn/Dfm2s6z+JbpO5gT6cS51St73xluUN1qWIr35WQNq5tIz4HC8zfpNvm36E 8sPZKRUFp3aIKwBRq4g4J2hwGHmWln0fAgQL2Ru3lHiiJnmlzyivqnOchSYERroJQpAXsG 8G9h3VrbaQZ/lH7wxNw1jQiG4D1WxnQ= Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-1d3e569ba83so2858345ad.0 for ; Tue, 19 Dec 2023 20:01:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1703044864; x=1703649664; 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=wTWOqyfMsQnqPpUH1dExxKEsGutDkMUJttQEhdAsH5o=; b=PUTgRyCH/utv/MiIFZMKQ6QKQj6YIFSTRDSS4AyOCz4LZSPAan/oZpmpKlHSoINIev TxdbfDDs6/BQKE1fM+SkbeQM1iQyZA8hVUc/1mHyVQMqw1VC5J/IUbcCRvGRcR8lQSeJ kZee3UOuZmDxXE+0TN0pxeYy5fu9RdPblv9tcxu/WGlRzLYLah+m2Mgqp6YvyBSmRone G7S3GpLBqUAj7rOBhl7T7SkUY0XK+nLW539ETVPjqciGMCDLC7H9bGCkVM9OXODHRc/t ftt7qV8G2dhAeFc0cosWATCtl2vkcY+dYwltOGZU7iV4eK6syr+M8FvVArhZVURVMXkj wJUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703044864; x=1703649664; 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=wTWOqyfMsQnqPpUH1dExxKEsGutDkMUJttQEhdAsH5o=; b=akwG5ByM5vPtwjLrXxanzhyKKLcDDrqsm0bM5XPWVFk11+uN9MD3n+GtHdUVkRAtKt QXFex4TO4xHhqY/FQblkCGoFmZqp4mcIw7keri2NOLTqiXVTj5tPDVuoSA2YlShL4W98 RoQWiIahPn+K7q2nzoZXl+lsTw9TUl27NOl9AP3wZijTcacl2lnhTSPsNXpaz/DYCLtb GBClWy+POHF2ZxFAYylviy0JRzLUTuSStbzAr+A6EErzkYyrq+8OhsCMkDqVyZ4I3TSp 3M8b1cgoQjJBHuPxk5MA2zMsG/BTauIDCQxYwwbOoRS+yoJzorumVAhoDE3uugjNBOWu IWIA== X-Gm-Message-State: AOJu0Yw8jgkCo1bLB3UeZo/KDEu2j9J7kXa0QjK0tOLIoKiq5u/WuNcp mpbzjGs1rCllBy+3JSWAfvTKoBFZrkmCTw== X-Google-Smtp-Source: AGHT+IE0XcJ98lkVtn0f7tLx0WtqdkyiYTQiXEVRKmkDPl96y9lZ49HW36To1Qbapl1IP/a6YRSAgo7zXZmaPQ== X-Received: from kinseyct.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:46b]) (user=kinseyho job=sendgmr) by 2002:a17:902:da85:b0:1d0:4246:90b1 with SMTP id j5-20020a170902da8500b001d0424690b1mr110279plx.0.1703044864390; Tue, 19 Dec 2023 20:01:04 -0800 (PST) Date: Wed, 20 Dec 2023 04:00:34 +0000 In-Reply-To: <20231220040037.883811-1-kinseyho@google.com> Mime-Version: 1.0 References: <20231220040037.883811-1-kinseyho@google.com> X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog Message-ID: <20231220040037.883811-2-kinseyho@google.com> Subject: [PATCH mm-unstable v1 1/4] 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, yuzhao@google.com, Kinsey Ho , Aneesh Kumar K V Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B53A016001C X-Stat-Signature: nyqj55a4hgbz4iiark6cembyrgqhoocp X-Rspam-User: X-HE-Tag: 1703044865-616535 X-HE-Meta: U2FsdGVkX1/0ymxZY2dJSx4DP4WuiKwjno2XNdFpybd9qLfl/zvMYWqV+zKYMD/Fz253BLG/D79s7eu5nN5jpxxN/NQpULE34WSQWtbmeBtg3tMRJnpBPzGQSB3R22T849JrvCQx3AC8XIBRzid23phADbQOJ00RPW1zgWGDg/+3PUGHe3xQlAC+gNh4QJr4sXie/GTZs7nNUoqRZXuGhgHFjlDqArifuGmeJcVT6O1BnXLN3pJ+EcoXadWRhYzc/wymY9jGWNFsuu4hMyuEIajtiiHP8fYOtZe/cdxiw/F93rQzLVRPPaeeTKJh7Xr48oBYwXIQ3Zrb0J7lxBI3ilNHglXnnXNQGDHWrOhTPClsH/H5xCD8k1b7v1PLevPYR1Y419MBvz7tFn7rK35rTi/2TIttkrpgKCQqrYDCV1/32BUOwYj54csppsXtyB8hqpdVGZQtUXjP/2MAReEl2sUivwk+sAe5PR44S3tQfFz23Y9NkLr2knBHRLHwjT4qk03ZA02hM/k2hrc007V6+Wp4tcWGTYrg75IT0qMegdoC7+zznl1zADSXbj1WwTS+J3vdOGlEFYKa3sOKVbNa//mwWH/YlBgV+Djb1CZRJNAa8Gpo6jeKn+RyKru9+Vg8X8X3fgD1kLJl59cNAmMVEm1NkAnsSnzRt9AOns8T4XSfDJjCAoSWw3/I89XeG60hHNXD0ev1beZvb1LOQdxy6z5ORPLPCj0aZEQmyggct1RcDvThcEOW8KSp+2V0tV+WRUIWJ3BEliaq5AcJ5yqxFhufSFRqzBXEBM3/phSBlqbdCq7O4ooB8HrDtzfC8Ci9MqvBxX8Y8Abo2ODXdzK17kVYYpau4T6dox03M13xpGKj7lKagH/IjjeDpHMokyJeQRSUk0AmzbroSmJZUJRcekcu8KS7Cks5J7sXVi3Ul5vh0H6tPDoVi7/A5AC9FSaxV7ptN15PpcKyQ0XhkgA 5bnhvoJt ofIDAfIi9dwg5Z1A0OQpEgWlvs+ViafK5yeN6avtGttT3qzeOR/j+V78XvWjva0GT7mC2o0GVfvDyAwEEQJzjpP5EQL3rSrxrjvfG0JIas16DTPq6hAo9/GL5MJjWpKo2qU6kpJqODQJDU1OG4Mzp4QN9MxBeZnkAVD2AHVGpBQcGPO5lPQwDcNYoR59OiUeouNaeKo0dNdUTZMRLzamR5pAq/KgyBBNxNceknODrUfwFalXfpfTTCYhMoHBbqUgxnpaZVGNBIaI3/VlT95W2e9dpJBBXdfC2H7W6VQFc9paamV+yXiYzUrZOH+IrCjuxHLVxQn2qVk/GwVa3LVWSmR57pgrwzN87t7womj5+Ca9+tPR5/KyWQxjgN5g9RyZEGpYn7VS835IASVDXmGProEMI4wmcFnp37Cslo3SwZzCI0yCRlI1sOctlwKpyFBwko6CXidkr/Hf5srzhbU7IxS5/XiibbEQ/td3n721+SGP1R+pdaoWjRgiCcWK3bz9TYaxqpk7TXirmhOfZ0jtWbO84KR+vv6vJEImaqiIhM0eXCpXl62tGcE33hpxxBLTIfOv9Rc8ioJQRlXw1iIoG8A9N7u+jn9Kk0XpjhBjrtj43H7EaPANQrfcf09Z3cjasfiUd6WmK7Qou7ddIUI9K8vl49IxnUqVreUGN43DbPPp+3oz4iCh1Lf7qEvlPkxdfZiJE 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 --- 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