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

From: Muchun Song
Date: Thu Dec 17 2020 - 05:43:21 EST


On Thu, Dec 17, 2020 at 6:32 PM Oscar Salvador <osalvador@xxxxxxx> wrote:
>
> 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:

Yeah, very thanks for pointing that out.

>
> 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.

You are right. It is my mistake. Thanks Oscar.

>
> --
> Oscar Salvador
> SUSE L3



--
Yours,
Muchun