| From: "Vishal Moola (Oracle)" <vishal.moola@gmail.com> |
| Subject: mm: remove page table members from struct page |
| Date: Mon, 7 Aug 2023 16:04:57 -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/20230807230513.102486-16-vishal.moola@gmail.com |
| Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com> |
| Acked-by: Mike Rapoport (IBM) <rppt@kernel.org> |
| Cc: Arnd Bergmann <arnd@arndb.de> |
| Cc: Catalin Marinas <catalin.marinas@arm.com> |
| Cc: Christophe Leroy <christophe.leroy@csgroup.eu> |
| Cc: Claudio Imbrenda <imbrenda@linux.ibm.com> |
| Cc: Dave Hansen <dave.hansen@linux.intel.com> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: "David S. Miller" <davem@davemloft.net> |
| Cc: Dinh Nguyen <dinguyen@kernel.org> |
| Cc: Geert Uytterhoeven <geert@linux-m68k.org> |
| Cc: Geert Uytterhoeven <geert+renesas@glider.be> |
| Cc: Guo Ren <guoren@kernel.org> |
| Cc: Huacai Chen <chenhuacai@kernel.org> |
| Cc: Hugh Dickins <hughd@google.com> |
| Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> |
| Cc: Jonas Bonn <jonas@southpole.se> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Cc: Palmer Dabbelt <palmer@rivosinc.com> |
| Cc: Paul Walmsley <paul.walmsley@sifive.com> |
| Cc: Richard Weinberger <richard@nod.at> |
| Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
| Cc: Yoshinori Sato <ysato@users.sourceforge.jp> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/mm_types.h | 21 --------------------- |
| 1 file 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; |
| @@ -454,10 +436,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); |
| _ |