| From: Hugh Dickins <hughd@google.com> |
| Subject: mm,hugetlb: use folio fields in second tail page: fix |
| Date: Wed, 9 Nov 2022 18:13:50 -0800 (PST) |
| |
| Per review comment from Sidhartha: prefix folio's page_1 and page_2 with |
| double underscore, to underscore that they are fillers for alignment |
| rather than directly usable members of the union (whereas the first |
| "struct page page" is important for folio<->page conversions). |
| |
| Per review comment from Kirill: give folio's _flags_2 and _head_2 a line |
| of documentation each, though both of them "Do not use" (I think _flags_1 |
| should be enough for now, and shouldn't recommend spilling to _flags_2). |
| |
| Link: https://lkml.kernel.org/r/9e2cb6b-5b58-d3f2-b5ee-5f8a14e8f10@google.com |
| Signed-off-by: Hugh Dickins <hughd@google.com> |
| Cc: David Hildenbrand <david@redhat.com> |
| Cc: James Houghton <jthoughton@google.com> |
| Cc: John Hubbard <jhubbard@nvidia.com> |
| Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Miaohe Lin <linmiaohe@huawei.com> |
| Cc: Mike Kravetz <mike.kravetz@oracle.com> |
| Cc: Mina Almasry <almasrymina@google.com> |
| Cc: Muchun Song <songmuchun@bytedance.com> |
| Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev> |
| Cc: Peter Xu <peterx@redhat.com> |
| Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> |
| Cc: Vlastimil Babka <vbabka@suse.cz> |
| Cc: Yang Shi <shy828301@gmail.com> |
| Cc: Zach O'Keefe <zokeefe@google.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/mm_types.h | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/include/linux/mm_types.h~mmhugetlb-use-folio-fields-in-second-tail-page-fix |
| +++ a/include/linux/mm_types.h |
| @@ -273,6 +273,8 @@ struct page { |
| * @_total_mapcount: Do not use directly, call folio_entire_mapcount(). |
| * @_pincount: Do not use directly, call folio_maybe_dma_pinned(). |
| * @_folio_nr_pages: Do not use directly, call folio_nr_pages(). |
| + * @_flags_2: For alignment. Do not use. |
| + * @_head_2: Points to the folio. Do not use. |
| * @_hugetlb_subpool: Do not use directly, use accessor in hugetlb.h. |
| * @_hugetlb_cgroup: Do not use directly, use accessor in hugetlb_cgroup.h. |
| * @_hugetlb_cgroup_rsvd: Do not use directly, use accessor in hugetlb_cgroup.h. |
| @@ -327,7 +329,7 @@ struct folio { |
| unsigned int _folio_nr_pages; |
| #endif |
| }; |
| - struct page page_1; |
| + struct page __page_1; |
| }; |
| union { |
| struct { |
| @@ -338,7 +340,7 @@ struct folio { |
| void *_hugetlb_cgroup_rsvd; |
| void *_hugetlb_hwpoison; |
| }; |
| - struct page page_2; |
| + struct page __page_2; |
| }; |
| }; |
| |
| _ |