Re: [PATCH v5 21/21] mm/hugetlb: Disable freeing vmemmap if struct page size is not power of two

From: Matthew Wilcox
Date: Sun Nov 22 2020 - 14:03:08 EST


On Fri, Nov 20, 2020 at 09:25:52AM +0100, Michal Hocko wrote:
> On Fri 20-11-20 14:43:25, Muchun Song wrote:
> > We only can free the unused vmemmap to the buddy system when the
> > size of struct page is a power of two.
>
> Can we actually have !power_of_2 struct pages?

Yes. On x86-64, if you don't enable MEMCG, it's 56 bytes. On SPARC64,
if you do enable MEMCG, it's 72 bytes. On 32-bit systems, it's
anything from 32-44 bytes, depending on MEMCG, WANT_PAGE_VIRTUAL and
LAST_CPUPID_NOT_IN_PAGE_FLAGS.