Re: [PATCH] mm, THP: vmf_insert_pfn_pud depends on CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD

From: Michal Hocko
Date: Thu Jan 11 2018 - 05:06:33 EST


On Thu 11-01-18 09:53:31, Alexandre Ghiti wrote:
> The only definition of vmf_insert_pfn_pud depends on
> CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD being defined. Then its declaration in
> include/linux/huge_mm.h should have the same restriction so that we do
> not expose this function if CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD is
> not defined.

Why is this a problem? Compiler should simply throw away any
declarations which are not used?

> Signed-off-by: Alexandre Ghiti <aghiti@xxxxxxxxx>
> ---
> include/linux/huge_mm.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
> index a8a1262..11794f6a 100644
> --- a/include/linux/huge_mm.h
> +++ b/include/linux/huge_mm.h
> @@ -48,8 +48,10 @@ extern int change_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
> int prot_numa);
> int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
> pmd_t *pmd, pfn_t pfn, bool write);
> +#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
> int vmf_insert_pfn_pud(struct vm_area_struct *vma, unsigned long addr,
> pud_t *pud, pfn_t pfn, bool write);
> +#endif
> enum transparent_hugepage_flag {
> TRANSPARENT_HUGEPAGE_FLAG,
> TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG,
> --
> 2.1.4
>

--
Michal Hocko
SUSE Labs