Re: [PATCH v9 11/11] mm/hugetlb: Optimize the code with the help of the compiler

From: Oscar Salvador
Date: Thu Dec 17 2020 - 05:32:46 EST


On Sun, Dec 13, 2020 at 11:45:34PM +0800, Muchun Song wrote:
> static inline unsigned int free_vmemmap_pages_per_hpage(struct hstate *h)
> {
> - return h->nr_free_vmemmap_pages;
> + return h->nr_free_vmemmap_pages && is_power_of_2(sizeof(struct page));

This is wrong as it will return either true or false, but not what we want:

static inline unsigned long free_vmemmap_pages_size_per_hpage(struct hstate *h)
{
return (unsigned long)free_vmemmap_pages_per_hpage(h) << PAGE_SHIFT;
}

the above will compute to 4096, which is wrong for obvious reasons.

--
Oscar Salvador
SUSE L3