Re: [PATCH 1/3] mm: Allow anon exclusive check over hugetlb tail pages

From: Andrew Morton
Date: Thu Apr 04 2024 - 16:31:46 EST


On Thu, 4 Apr 2024 10:21:21 -0400 Peter Xu <peterx@xxxxxxxxxx> wrote:

> Andrew, could you help update with Matthew's fixup? The comment is
> definitely better than what I wrote in all cases.


From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Subject: mm-allow-anon-exclusive-check-over-hugetlb-tail-pages-fix
Date: Thu Apr 4 01:27:47 PM PDT 2024

simplify PageAnonExclusive(), per Matthew

Link: https://lkml.kernel.org/r/Zg3u5Sh9EbbYPhaI@xxxxxxxxxxxxxxxxxxxx
Cc: David Hildenbrand <david@xxxxxxxxxx>
Cc: Huacai Chen <chenhuacai@xxxxxxxxxx>
Cc: Jason Gunthorpe <jgg@xxxxxxxxxx>
Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
Cc: Nathan Chancellor <nathan@xxxxxxxxxx>
Cc: Peter Xu <peterx@xxxxxxxxxx>
Cc: Ryan Roberts <ryan.roberts@xxxxxxx>
Cc: WANG Xuerui <kernel@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

include/linux/page-flags.h | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

--- a/include/linux/page-flags.h~mm-allow-anon-exclusive-check-over-hugetlb-tail-pages-fix
+++ a/include/linux/page-flags.h
@@ -1096,11 +1096,10 @@ static __always_inline int PageAnonExclu
{
VM_BUG_ON_PGFLAGS(!PageAnon(page), page);
/*
- * Allow the anon-exclusive check to work on hugetlb tail pages.
- * Here hugetlb pages will always guarantee the anon-exclusiveness
- * of the head page represents the tail pages.
+ * HugeTLB stores this information on the head page; THP keeps it per
+ * page
*/
- if (PageHuge(page) && !PageHead(page))
+ if (PageHuge(page))
page = compound_head(page);
return test_bit(PG_anon_exclusive, &PF_ANY(page, 1)->flags);
}
_