On Thu, Nov 12, 2026 at 12:25:25PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <[email protected]> > > CONFIG_HIGHPTE was added in linux-2.6.32, a few years before 64-bit > support. At the time it made sense, as the CONFIG_ARM_LPAE option allowed > systems with 16GB of memory that made lowmem a particularly scarce > resource, and the HIGHPTE implementation gave feature parity with 32-bit > x86 and frv machines. > > Since Arm is the last architecture remaining that uses this, and almost > no 32-bit machines support more than 4GB of RAM, the cost of continuing > to maintain HIGHPTE seems unjustified, so remove it here to allow > simplifying the generic page table handling. > > Link: > https://lore.kernel.org/lkml/[email protected]/T/#u > Signed-off-by: Arnd Bergmann <[email protected]> > --- > I sent a patch to drop HIGHPTE support on x86 today, see > https://lore.kernel.org/lkml/[email protected]/T/#u > > If that one gets merged, we can merge this one instead of the one > that makes HIGHPTE depend on !PREEMPT_RT, but if we decide against > the x86 change, then we probably don't want this one either. > > Signed-off-by: Arnd Bergmann <[email protected]>
With Mike's change applied, LGTM and: Acked-by: Lorenzo Stoakes (ARM) <[email protected]> > --- > arch/arm/Kconfig | 11 ----------- > arch/arm/include/asm/pgalloc.h | 8 +------- > 2 files changed, 1 insertion(+), 18 deletions(-) > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index fd01ccab9c12..fc66d52d847e 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -1225,17 +1225,6 @@ config HIGHMEM > > If unsure, say n. > > -config HIGHPTE > - bool "Allocate 2nd-level pagetables from highmem" if EXPERT > - depends on HIGHMEM && !PREEMPT_RT > - default y > - help > - The VM uses one page of physical memory for each page table. > - For systems with a lot of processes, this can use a lot of > - precious low memory, eventually leading to low memory being > - consumed by page tables. Setting this option will allow > - user-space 2nd level page tables to reside in high memory. > - > config ARM_PAN > bool "Enable privileged no-access" > depends on MMU > diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h > index a17f01235c29..ef6cb3e6d179 100644 > --- a/arch/arm/include/asm/pgalloc.h > +++ b/arch/arm/include/asm/pgalloc.h > @@ -85,18 +85,12 @@ pte_alloc_one_kernel(struct mm_struct *mm) > return pte; > } > > -#ifdef CONFIG_HIGHPTE > -#define PGTABLE_HIGHMEM __GFP_HIGHMEM > -#else > -#define PGTABLE_HIGHMEM 0 > -#endif > - > static inline pgtable_t > pte_alloc_one(struct mm_struct *mm) > { > struct page *pte; > > - pte = __pte_alloc_one(mm, GFP_PGTABLE_USER | PGTABLE_HIGHMEM); > + pte = __pte_alloc_one(mm, GFP_PGTABLE_USER); > if (!pte) > return NULL; > if (!PageHighMem(pte)) > -- > 2.53.0 > -- Cheers, Lorenzo
