From: Ryan Roberts <ryan.roberts@arm.com> To: Andrew Morton <akpm@linux-foundation.org>, Matthew Wilcox <willy@infradead.org>, Yin Fengwei <fengwei.yin@intel.com>, David Hildenbrand <david@redhat.com>, Yu Zhao <yuzhao@google.com>, Catalin Marinas <catalin.marinas@arm.com>, Anshuman Khandual <anshuman.khandual@arm.com>, Yang Shi <shy828301@gmail.com>, "Huang, Ying" <ying.huang@intel.com>, Zi Yan <ziy@nvidia.com>, Luis Chamberlain <mcgrof@kernel.org>, Itaru Kitayama <itaru.kitayama@gmail.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, John Hubbard <jhubbard@nvidia.com>, David Rientjes <rientjes@google.com>, Vlastimil Babka <vbabka@suse.cz>, Hugh Dickins <hughd@google.com> Cc: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order() Date: Fri, 29 Sep 2023 12:44:18 +0100 [thread overview] Message-ID: <20230929114421.3761121-8-ryan.roberts@arm.com> (raw) In-Reply-To: <20230929114421.3761121-1-ryan.roberts@arm.com> Define an arch-specific override of arch_wants_pte_order() so that when anon_orders=recommend is set, large folios will be allocated for anonymous memory with an order that is compatible with arm64's HPA uarch feature. Reviewed-by: Yu Zhao <yuzhao@google.com> Signed-off-by: Ryan Roberts <ryan.roberts@arm.com> --- arch/arm64/include/asm/pgtable.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 7f7d9b1df4e5..e3d2449dec5c 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -1110,6 +1110,16 @@ extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma, extern void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t new_pte); + +#define arch_wants_pte_order arch_wants_pte_order +static inline int arch_wants_pte_order(void) +{ + /* + * Many arm64 CPUs support hardware page aggregation (HPA), which can + * coalesce 4 contiguous pages into a single TLB entry. + */ + return 2; +} #endif /* !__ASSEMBLY__ */ #endif /* __ASM_PGTABLE_H */ -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Ryan Roberts <ryan.roberts@arm.com> To: Andrew Morton <akpm@linux-foundation.org>, Matthew Wilcox <willy@infradead.org>, Yin Fengwei <fengwei.yin@intel.com>, David Hildenbrand <david@redhat.com>, Yu Zhao <yuzhao@google.com>, Catalin Marinas <catalin.marinas@arm.com>, Anshuman Khandual <anshuman.khandual@arm.com>, Yang Shi <shy828301@gmail.com>, "Huang, Ying" <ying.huang@intel.com>, Zi Yan <ziy@nvidia.com>, Luis Chamberlain <mcgrof@kernel.org>, Itaru Kitayama <itaru.kitayama@gmail.com>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, John Hubbard <jhubbard@nvidia.com>, David Rientjes <rientjes@google.com>, Vlastimil Babka <vbabka@suse.cz>, Hugh Dickins <hughd@google.com> Cc: Ryan Roberts <ryan.roberts@arm.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order() Date: Fri, 29 Sep 2023 12:44:18 +0100 [thread overview] Message-ID: <20230929114421.3761121-8-ryan.roberts@arm.com> (raw) In-Reply-To: <20230929114421.3761121-1-ryan.roberts@arm.com> Define an arch-specific override of arch_wants_pte_order() so that when anon_orders=recommend is set, large folios will be allocated for anonymous memory with an order that is compatible with arm64's HPA uarch feature. Reviewed-by: Yu Zhao <yuzhao@google.com> Signed-off-by: Ryan Roberts <ryan.roberts@arm.com> --- arch/arm64/include/asm/pgtable.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 7f7d9b1df4e5..e3d2449dec5c 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -1110,6 +1110,16 @@ extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma, extern void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t new_pte); + +#define arch_wants_pte_order arch_wants_pte_order +static inline int arch_wants_pte_order(void) +{ + /* + * Many arm64 CPUs support hardware page aggregation (HPA), which can + * coalesce 4 contiguous pages into a single TLB entry. + */ + return 2; +} #endif /* !__ASSEMBLY__ */ #endif /* __ASM_PGTABLE_H */ -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-09-29 11:45 UTC|newest] Thread overview: 140+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-09-29 11:44 [PATCH v6 0/9] variable-order, large folios for anonymous memory Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-09-29 11:44 ` [PATCH v6 1/9] mm: Allow deferred splitting of arbitrary anon large folios Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-10-05 8:19 ` David Hildenbrand 2023-10-05 8:19 ` David Hildenbrand 2023-09-29 11:44 ` [PATCH v6 2/9] mm: Non-pmd-mappable, large folios for folio_add_new_anon_rmap() Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-09-29 13:45 ` Kirill A. Shutemov 2023-09-29 13:45 ` Kirill A. Shutemov 2023-09-29 14:39 ` Ryan Roberts 2023-09-29 14:39 ` Ryan Roberts 2023-09-29 11:44 ` [PATCH v6 3/9] mm: thp: Account pte-mapped anonymous THP usage Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-09-29 11:44 ` [PATCH v6 4/9] mm: thp: Introduce anon_orders and anon_always_mask sysfs files Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-09-29 22:55 ` Andrew Morton 2023-09-29 22:55 ` Andrew Morton 2023-09-29 22:55 ` Andrew Morton 2023-10-02 10:15 ` Ryan Roberts 2023-10-02 10:15 ` Ryan Roberts 2023-10-02 10:15 ` Ryan Roberts 2023-10-07 22:54 ` Michael Ellerman 2023-10-07 22:54 ` Michael Ellerman 2023-10-07 22:54 ` Michael Ellerman 2023-10-10 0:20 ` Andrew Morton 2023-10-10 0:20 ` Andrew Morton 2023-10-10 0:20 ` Andrew Morton 2023-10-12 9:31 ` David Hildenbrand 2023-10-12 9:31 ` David Hildenbrand 2023-10-12 9:31 ` David Hildenbrand 2023-10-12 11:07 ` Michael Ellerman 2023-10-12 11:07 ` Michael Ellerman 2023-10-12 11:07 ` Michael Ellerman 2023-10-11 6:02 ` kernel test robot 2023-10-11 6:02 ` kernel test robot 2023-09-29 11:44 ` [PATCH v6 5/9] mm: thp: Extend THP to allocate anonymous large folios Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts [not found] ` <CGME20231005120507eucas1p13f50fa99f52808818840ee7db194e12e@eucas1p1.samsung.com> 2023-10-05 12:05 ` Daniel Gomez 2023-10-05 12:05 ` Daniel Gomez 2023-10-05 12:49 ` Ryan Roberts 2023-10-05 12:49 ` Ryan Roberts 2023-10-05 14:59 ` Daniel Gomez 2023-10-05 14:59 ` Daniel Gomez 2023-10-27 23:04 ` John Hubbard 2023-10-27 23:04 ` John Hubbard 2023-10-30 11:43 ` Ryan Roberts 2023-10-30 11:43 ` Ryan Roberts 2023-10-30 23:25 ` John Hubbard 2023-10-30 23:25 ` John Hubbard 2023-11-01 13:56 ` Ryan Roberts 2023-11-01 13:56 ` Ryan Roberts 2023-09-29 11:44 ` [PATCH v6 6/9] mm: thp: Add "recommend" option for anon_orders Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-10-06 20:08 ` David Hildenbrand 2023-10-06 20:08 ` David Hildenbrand 2023-10-06 22:28 ` Yu Zhao 2023-10-06 22:28 ` Yu Zhao 2023-10-09 11:45 ` Ryan Roberts 2023-10-09 11:45 ` Ryan Roberts 2023-10-09 14:43 ` David Hildenbrand 2023-10-09 14:43 ` David Hildenbrand 2023-10-09 20:04 ` Yu Zhao 2023-10-09 20:04 ` Yu Zhao 2023-10-10 10:16 ` Ryan Roberts 2023-10-10 10:16 ` Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts [this message] 2023-09-29 11:44 ` [PATCH v6 7/9] arm64/mm: Override arch_wants_pte_order() Ryan Roberts 2023-10-02 15:21 ` Catalin Marinas 2023-10-02 15:21 ` Catalin Marinas 2023-10-03 7:32 ` Ryan Roberts 2023-10-03 7:32 ` Ryan Roberts 2023-10-03 12:05 ` Catalin Marinas 2023-10-03 12:05 ` Catalin Marinas 2023-09-29 11:44 ` [PATCH v6 8/9] selftests/mm/cow: Generalize do_run_with_thp() helper Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-09-29 11:44 ` [PATCH v6 9/9] selftests/mm/cow: Add tests for small-order anon THP Ryan Roberts 2023-09-29 11:44 ` Ryan Roberts 2023-10-06 20:06 ` [PATCH v6 0/9] variable-order, large folios for anonymous memory David Hildenbrand 2023-10-06 20:06 ` David Hildenbrand 2023-10-09 11:28 ` Ryan Roberts 2023-10-09 11:28 ` Ryan Roberts 2023-10-09 16:22 ` David Hildenbrand 2023-10-09 16:22 ` David Hildenbrand 2023-10-10 10:47 ` Ryan Roberts 2023-10-10 10:47 ` Ryan Roberts 2023-10-13 20:14 ` David Hildenbrand 2023-10-13 20:14 ` David Hildenbrand 2023-10-20 12:33 ` Ryan Roberts 2023-10-20 12:33 ` Ryan Roberts 2023-10-25 16:24 ` Ryan Roberts 2023-10-25 16:24 ` Ryan Roberts 2023-10-25 18:47 ` David Hildenbrand 2023-10-25 18:47 ` David Hildenbrand 2023-10-25 19:11 ` Yu Zhao 2023-10-25 19:11 ` Yu Zhao 2023-10-26 9:53 ` Ryan Roberts 2023-10-26 9:53 ` Ryan Roberts 2023-10-26 15:19 ` David Hildenbrand 2023-10-26 15:19 ` David Hildenbrand 2023-10-25 19:10 ` John Hubbard 2023-10-25 19:10 ` John Hubbard 2023-10-31 11:50 ` Ryan Roberts 2023-10-31 11:50 ` Ryan Roberts 2023-10-31 11:55 ` Ryan Roberts 2023-10-31 11:55 ` Ryan Roberts 2023-10-31 12:03 ` David Hildenbrand 2023-10-31 12:03 ` David Hildenbrand 2023-10-31 13:13 ` Ryan Roberts 2023-10-31 13:13 ` Ryan Roberts 2023-10-31 18:29 ` Yang Shi 2023-10-31 18:29 ` Yang Shi 2023-11-01 14:02 ` Ryan Roberts 2023-11-01 14:02 ` Ryan Roberts 2023-11-01 18:11 ` Yang Shi 2023-11-01 18:11 ` Yang Shi 2023-10-31 11:58 ` David Hildenbrand 2023-10-31 11:58 ` David Hildenbrand 2023-10-31 13:12 ` Ryan Roberts 2023-10-31 13:12 ` Ryan Roberts 2023-11-13 3:57 ` John Hubbard 2023-11-13 3:57 ` John Hubbard 2023-11-13 5:18 ` Matthew Wilcox 2023-11-13 5:18 ` Matthew Wilcox 2023-11-13 10:19 ` Ryan Roberts 2023-11-13 10:19 ` Ryan Roberts 2023-11-13 11:52 ` Kefeng Wang 2023-11-13 11:52 ` Kefeng Wang 2023-11-13 12:12 ` Ryan Roberts 2023-11-13 12:12 ` Ryan Roberts 2023-11-13 14:52 ` Kefeng Wang 2023-11-13 14:52 ` Kefeng Wang 2023-11-13 14:52 ` John Hubbard 2023-11-13 14:52 ` John Hubbard 2023-11-13 15:04 ` Matthew Wilcox 2023-11-13 15:04 ` Matthew Wilcox 2023-11-14 10:57 ` Ryan Roberts 2023-11-14 10:57 ` Ryan Roberts 2023-12-05 16:05 ` Matthew Wilcox 2023-12-05 16:05 ` Matthew Wilcox
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230929114421.3761121-8-ryan.roberts@arm.com \ --to=ryan.roberts@arm.com \ --cc=akpm@linux-foundation.org \ --cc=anshuman.khandual@arm.com \ --cc=catalin.marinas@arm.com \ --cc=david@redhat.com \ --cc=fengwei.yin@intel.com \ --cc=hughd@google.com \ --cc=itaru.kitayama@gmail.com \ --cc=jhubbard@nvidia.com \ --cc=kirill.shutemov@linux.intel.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mcgrof@kernel.org \ --cc=rientjes@google.com \ --cc=shy828301@gmail.com \ --cc=vbabka@suse.cz \ --cc=willy@infradead.org \ --cc=ying.huang@intel.com \ --cc=yuzhao@google.com \ --cc=ziy@nvidia.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.