Re: [PATCH v3 4/6] mm/thp: add THP allocation helper

Ralph Campbell
2020-11-06T21:09:34Z

On 11/6/20 12:01 AM, Christoph Hellwig wrote:
>> +#ifdef CONFIG_TRANSPARENT_HUGEPAGE
>> +extern struct page *alloc_transhugepage(struct vm_area_struct *vma,
>> + unsigned long addr);
>
> No need for the extern. And also here: do we actually need the stub,
> or can the caller make sure (using IS_ENABLED and similar) that the
> compiler knows the code is dead?

Same problem as with prep_transhuge_device_private_page(), since
alloc_hugepage_direct_gfpmask() and alloc_hugepage_vma() are not
EXPORT_SYMBOL_GPL.

>> +struct page *alloc_transhugepage(struct vm_area_struct *vma,
>> + unsigned long haddr)
>> +{
>> + gfp_t gfp;
>> + struct page *page;
>> +
>> + gfp = alloc_hugepage_direct_gfpmask(vma);
>> + page = alloc_hugepage_vma(gfp, vma, haddr, HPAGE_PMD_ORDER);
>> + if (page)
>> + prep_transhuge_page(page);
>> + return page;
>
> I think do_huge_pmd_anonymous_page should be switched to use this
> helper as well.

Sure, I'll do that for v4.