[lkml]   [2020]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH] mm/hugetlb: remove unnecessary memory fetch in PageHeadHuge()
Commit f1e61557f023 ("mm: pack compound_dtor and compound_order into one word
in struct page") changed compound_dtor from a pointer to an array index in
order to pack it. To check if page has the hugeltbfs compound_dtor, we can
just compare the index directly without fetching the function pointer.
Said commit did that with PageHuge() and we can do the same with PageHeadHuge()
to make the code a bit smaller and faster.

Signed-off-by: Vlastimil Babka <>
Cc: Mike Kravetz <>
Cc: Kirill A. Shutemov <>
mm/hugetlb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index dd8737a94bec..ba1ca452aa7f 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1313,7 +1313,7 @@ int PageHeadHuge(struct page *page_head)
if (!PageHead(page_head))
return 0;

- return get_compound_page_dtor(page_head) == free_huge_page;
+ return page_head[1].compound_dtor == HUGETLB_PAGE_DTOR;

pgoff_t __basepage_index(struct page *page)
 \ /
  Last update: 2020-03-11 18:25    [W:0.078 / U:3.980 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site