The patch titled Subject: mm: remove page table members from struct page has been added to the -mm mm-unstable branch. Its filename is mm-remove-page-table-members-from-struct-page.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-remove-page-table-members-from-struct-page.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: "Vishal Moola (Oracle)" <vishal.moola@xxxxxxxxx> Subject: mm: remove page table members from struct page Date: Mon, 31 Jul 2023 10:03:16 -0700 The page table members are now split out into their own ptdesc struct. Remove them from struct page. Link: https://lkml.kernel.org/r/20230731170332.69404-16-vishal.moola@xxxxxxxxx Signed-off-by: Vishal Moola (Oracle) <vishal.moola@xxxxxxxxx> Acked-by: Mike Rapoport (IBM) <rppt@xxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx> Cc: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: David S. Miller <davem@xxxxxxxxxxxxx> Cc: Dinh Nguyen <dinguyen@xxxxxxxxxx> Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> Cc: Guo Ren <guoren@xxxxxxxxxx> Cc: Huacai Chen <chenhuacai@xxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx> Cc: Jonas Bonn <jonas@xxxxxxxxxxxx> Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> Cc: Palmer Dabbelt <palmer@xxxxxxxxxxxx> Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx> Cc: Richard Weinberger <richard@xxxxxx> Cc: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> Cc: Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mm_types.h | 18 ------------------ include/linux/pgtable.h | 3 --- 2 files changed, 21 deletions(-) --- a/include/linux/mm_types.h~mm-remove-page-table-members-from-struct-page +++ a/include/linux/mm_types.h @@ -141,24 +141,6 @@ struct page { struct { /* Tail pages of compound page */ unsigned long compound_head; /* Bit zero is set */ }; - struct { /* Page table pages */ - unsigned long _pt_pad_1; /* compound_head */ - pgtable_t pmd_huge_pte; /* protected by page->ptl */ - /* - * A PTE page table page might be freed by use of - * rcu_head: which overlays those two fields above. - */ - unsigned long _pt_pad_2; /* mapping */ - union { - struct mm_struct *pt_mm; /* x86 pgds only */ - atomic_t pt_frag_refcount; /* powerpc */ - }; -#if ALLOC_SPLIT_PTLOCKS - spinlock_t *ptl; -#else - spinlock_t ptl; -#endif - }; struct { /* ZONE_DEVICE pages */ /** @pgmap: Points to the hosting device page map. */ struct dev_pagemap *pgmap; --- a/include/linux/pgtable.h~mm-remove-page-table-members-from-struct-page +++ a/include/linux/pgtable.h @@ -1056,10 +1056,7 @@ struct ptdesc { TABLE_MATCH(flags, __page_flags); TABLE_MATCH(compound_head, pt_list); TABLE_MATCH(compound_head, _pt_pad_1); -TABLE_MATCH(pmd_huge_pte, pmd_huge_pte); TABLE_MATCH(mapping, __page_mapping); -TABLE_MATCH(pt_mm, pt_mm); -TABLE_MATCH(ptl, ptl); TABLE_MATCH(rcu_head, pt_rcu_head); TABLE_MATCH(page_type, __page_type); TABLE_MATCH(_refcount, _refcount); _ Patches currently in -mm which might be from vishal.moola@xxxxxxxxx are mm-add-page_type_op-folio-functions.patch pgtable-create-struct-ptdesc.patch mm-add-utility-functions-for-ptdesc.patch mm-convert-pmd_pgtable_page-callers-to-use-pmd_ptdesc.patch mm-convert-ptlock_alloc-to-use-ptdescs.patch mm-convert-ptlock_ptr-to-use-ptdescs.patch mm-convert-pmd_ptlock_init-to-use-ptdescs.patch mm-convert-ptlock_init-to-use-ptdescs.patch mm-convert-pmd_ptlock_free-to-use-ptdescs.patch mm-convert-ptlock_free-to-use-ptdescs.patch mm-create-ptdesc-equivalents-for-pgtable_ptepmd_page_ctordtor.patch powerpc-convert-various-functions-to-use-ptdescs.patch x86-convert-various-functions-to-use-ptdescs.patch s390-convert-various-pgalloc-functions-to-use-ptdescs.patch mm-remove-page-table-members-from-struct-page.patch pgalloc-convert-various-functions-to-use-ptdescs.patch arm-convert-various-functions-to-use-ptdescs.patch arm64-convert-various-functions-to-use-ptdescs.patch csky-convert-__pte_free_tlb-to-use-ptdescs.patch hexagon-convert-__pte_free_tlb-to-use-ptdescs.patch loongarch-convert-various-functions-to-use-ptdescs.patch m68k-convert-various-functions-to-use-ptdescs.patch mips-convert-various-functions-to-use-ptdescs.patch nios2-convert-__pte_free_tlb-to-use-ptdescs.patch openrisc-convert-__pte_free_tlb-to-use-ptdescs.patch riscv-convert-alloc_pmd-pte_late-to-use-ptdescs.patch sh-convert-pte_free_tlb-to-use-ptdescs.patch sparc64-convert-various-functions-to-use-ptdescs.patch sparc-convert-pgtable_pte_page_ctor-dtor-to-ptdesc-equivalents.patch um-convert-pmd-pte_free_tlb-to-use-ptdescs.patch mm-remove-pgtable_pmd-pte_page_ctor-dtor-wrappers.patch