Thread (14 messages) read the whole thread 14 messages, 6 authors, 2022-06-18

Re: [PATCH 1/4] hugetlb: skip to end of PT page mapping when pte not present

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2022-06-17 15:26:49
Also in: linux-arm-kernel, linux-mips, linux-mm, linux-s390, linux-sh, lkml, sparclinux

Hi Peter,

On Fri, Jun 17, 2022 at 4:22 PM Peter Xu [off-list ref] wrote:
On Thu, Jun 16, 2022 at 02:05:15PM -0700, Mike Kravetz wrote:
quoted
@@ -6877,6 +6896,39 @@ pte_t *huge_pte_offset(struct mm_struct *mm,
      return (pte_t *)pmd;
 }

+/*
+ * Return a mask that can be used to update an address to the last huge
+ * page in a page table page mapping size.  Used to skip non-present
+ * page table entries when linearly scanning address ranges.  Architectures
+ * with unique huge page to page table relationships can define their own
+ * version of this routine.
+ */
+unsigned long hugetlb_mask_last_page(struct hstate *h)
+{
+     unsigned long hp_size = huge_page_size(h);
+
+     switch (hp_size) {
+     case P4D_SIZE:
+             return PGDIR_SIZE - P4D_SIZE;
+     case PUD_SIZE:
+             return P4D_SIZE - PUD_SIZE;
+     case PMD_SIZE:
+             return PUD_SIZE - PMD_SIZE;
+     default:
Should we add a WARN_ON_ONCE() if it should never trigger?
And with panic_on_warn, it'll panic only once ;-)

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help