[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YqeBzNYrgFGqtfaj@monkey>
Date: Mon, 13 Jun 2022 11:28:28 -0700
From: Mike kravetz <mike.kravetz@...cle.com>
To: Muchun Song <songmuchun@...edance.com>
Cc: david@...hat.com, akpm@...ux-foundation.org, corbet@....net,
linux-mm@...ck.org, linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org
Subject: Re: [PATCH 2/6] mm: hugetlb_vmemmap: optimize vmemmap_optimize_mode
handling
On Mon, Jun 13, 2022 at 02:35:08PM +0800”, Muchun Song wrote:
> We hold an another reference to hugetlb_optimize_vmemmap_key when
> making vmemmap_optimize_mode on, because we use static_key to tell
> memory_hotplug that memory_hotplug.memmap_on_memory should be
> overridden. However, this rule has gone when we have introduced
> SECTION_CANNOT_OPTIMIZE_VMEMMAP. Therefore, we could simplify
> vmemmap_optimize_mode handling by not holding an another reference
> to hugetlb_optimize_vmemmap_key.
>
> Signed-off-by: Muchun Song <songmuchun@...edance.com>
> ---
> include/linux/page-flags.h | 6 ++---
> mm/hugetlb_vmemmap.c | 65 +++++-----------------------------------------
> 2 files changed, 9 insertions(+), 62 deletions(-)
>
> diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
> index b8b992cb201c..da7ccc3b16ad 100644
> --- a/include/linux/page-flags.h
> +++ b/include/linux/page-flags.h
> @@ -200,8 +200,7 @@ 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);
> +DECLARE_STATIC_KEY_FALSE(hugetlb_optimize_vmemmap_key);
>
> /*
> * If the feature of optimizing vmemmap pages associated with each HugeTLB
> @@ -221,8 +220,7 @@ DECLARE_STATIC_KEY_MAYBE(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON,
> */
> static __always_inline const struct page *page_fixed_fake_head(const struct page *page)
> {
> - if (!static_branch_maybe(CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON,
> - &hugetlb_optimize_vmemmap_key))
> + if (!static_branch_unlikely(&hugetlb_optimize_vmemmap_key))
> return page;
This also means that we not incur the extra page_fixed_fake_head checks
if there are no vmemmap optinmized hugetlb pages. Nice!
Reviewed-by: Mike Kravetz <mike.kravetz@...cle.com>
--
Mike Kravetz
Powered by blists - more mailing lists