[mm-unstable] mm: remove the hugetlb field from struct page

Message ID 20230109230806.910287-1-sidhartha.kumar@oracle.com
State New
Headers
Series [mm-unstable] mm: remove the hugetlb field from struct page |

Commit Message

Sidhartha Kumar Jan. 9, 2023, 11:08 p.m. UTC
  commit dad6a5eb5556(mm,hugetlb: use folio fields in second tail page)
added a transitional hugetlb field to struct page and struct folio to make
room for another int in the first tail of a compound page. Hugetlb folio
conversions have changed all page users of this field to use the fields
within the folio so struct page no longer needs this hugetlb specific
field.

Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
---
This is rebased on 01/09/2023 mm-unstable plus Matthew's series[1] applied

[1]https://lore.kernel.org/linux-mm/20221231214610.2800682-1-willy@infradead.org/

 include/linux/mm_types.h | 12 ------------
 1 file changed, 12 deletions(-)
  

Comments

Andrew Morton Jan. 10, 2023, 12:49 a.m. UTC | #1
On Mon,  9 Jan 2023 17:08:06 -0600 Sidhartha Kumar <sidhartha.kumar@oracle.com> wrote:

> commit dad6a5eb5556(mm,hugetlb: use folio fields in second tail page)
> added a transitional hugetlb field to struct page and struct folio to make
> room for another int in the first tail of a compound page. Hugetlb folio
> conversions have changed all page users of this field to use the fields
> within the folio so struct page no longer needs this hugetlb specific
> field.
> 
> Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
> ---
> This is rebased on 01/09/2023 mm-unstable plus Matthew's series[1] applied
> 
> [1]https://lore.kernel.org/linux-mm/20221231214610.2800682-1-willy@infradead.org/

Matthew's series had some compilation issues and needs quite some
rework to make it apply to current mm-unstable..

So, please resend this patch once v2 of "Get rid of first tail page
fields" has materialized.
  

Patch

diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 330d2f2648cd..456adae75f74 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -147,14 +147,6 @@  struct page {
 			/* For both global and memcg */
 			struct list_head deferred_list;
 		};
-		struct {	/* Second tail page of hugetlb page */
-			unsigned long _hugetlb_pad_1;	/* compound_head */
-			void *hugetlb_subpool;
-			void *hugetlb_cgroup;
-			void *hugetlb_cgroup_rsvd;
-			void *hugetlb_hwpoison;
-			/* No more space on 32-bit: use third tail if more */
-		};
 		struct {	/* Page table pages */
 			unsigned long _pt_pad_1;	/* compound_head */
 			pgtable_t pmd_huge_pte; /* protected by page->ptl */
@@ -397,10 +389,6 @@  FOLIO_MATCH(compound_head, _head_1);
 			offsetof(struct page, pg) + 2 * sizeof(struct page))
 FOLIO_MATCH(flags, _flags_2);
 FOLIO_MATCH(compound_head, _head_2);
-FOLIO_MATCH(hugetlb_subpool, _hugetlb_subpool);
-FOLIO_MATCH(hugetlb_cgroup, _hugetlb_cgroup);
-FOLIO_MATCH(hugetlb_cgroup_rsvd, _hugetlb_cgroup_rsvd);
-FOLIO_MATCH(hugetlb_hwpoison, _hugetlb_hwpoison);
 #undef FOLIO_MATCH
 
 /*