diff options
Diffstat (limited to 'include/linux/page-flags.h')
| -rw-r--r-- | include/linux/page-flags.h | 32 | 
1 files changed, 4 insertions, 28 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index ea19528564d1..465ff35a8c00 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -205,34 +205,15 @@ enum pageflags {  #ifndef __GENERATING_BOUNDS_H  #ifdef CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP -DECLARE_STATIC_KEY_MAYBE(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON, -			 hugetlb_optimize_vmemmap_key); - -static __always_inline bool hugetlb_optimize_vmemmap_enabled(void) -{ -	return static_branch_maybe(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON, -				   &hugetlb_optimize_vmemmap_key); -} +DECLARE_STATIC_KEY_FALSE(hugetlb_optimize_vmemmap_key);  /* - * If the feature of optimizing vmemmap pages associated with each HugeTLB - * page is enabled, the head vmemmap page frame is reused and all of the tail - * vmemmap addresses map to the head vmemmap page frame (furture details can - * refer to the figure at the head of the mm/hugetlb_vmemmap.c).  In other - * words, there are more than one page struct with PG_head associated with each - * HugeTLB page.  We __know__ that there is only one head page struct, the tail - * page structs with PG_head are fake head page structs.  We need an approach - * to distinguish between those two different types of page structs so that - * compound_head() can return the real head page struct when the parameter is - * the tail page struct but with PG_head. - * - * The page_fixed_fake_head() returns the real head page struct if the @page is - * fake page head, otherwise, returns @page which can either be a true page - * head or tail. + * Return the real head page struct iff the @page is a fake head page, otherwise + * return the @page itself. See Documentation/mm/vmemmap_dedup.rst.   */  static __always_inline const struct page *page_fixed_fake_head(const struct page *page)  { -	if (!hugetlb_optimize_vmemmap_enabled()) +	if (!static_branch_unlikely(&hugetlb_optimize_vmemmap_key))  		return page;  	/* @@ -260,11 +241,6 @@ static inline const struct page *page_fixed_fake_head(const struct page *page)  {  	return page;  } - -static inline bool hugetlb_optimize_vmemmap_enabled(void) -{ -	return false; -}  #endif  static __always_inline int page_is_fake_head(struct page *page)  |