On Mon, Nov 23, 2020 at 3:00 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > 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. > On x86-64, even if you do not enable MEMCG, it's also 64 bytes. Because CONFIG_HAVE_ALIGNED_STRUCT_PAGE is defined if we use SLUB. -- Yours, Muchun