2023-01-09 23:56:31

by Sidhartha Kumar

[permalink] [raw]
Subject: [PATCH mm-unstable] mm: remove the hugetlb field from struct page

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 <[email protected]>
---
This is rebased on 01/09/2023 mm-unstable plus Matthew's series[1] applied

[1]https://lore.kernel.org/linux-mm/[email protected]/

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

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

/*
--
2.39.0


2023-01-10 01:09:02

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH mm-unstable] mm: remove the hugetlb field from struct page

On Mon, 9 Jan 2023 17:08:06 -0600 Sidhartha Kumar <[email protected]> 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 <[email protected]>
> ---
> This is rebased on 01/09/2023 mm-unstable plus Matthew's series[1] applied
>
> [1]https://lore.kernel.org/linux-mm/[email protected]/

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.