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.