On Fri, Jun 04, 2021 at 08:33:45PM +0200, Matteo Croce wrote: > @@ -130,7 +137,10 @@ struct page { > }; > }; > struct { /* Tail pages of compound page */ > - unsigned long compound_head; /* Bit zero is set */ > + /* Bit zero is set > + * Bit one if pfmemalloc page > + */ > + unsigned long compound_head; I would drop this hunk. Bit 1 is not used for this purpose in tail pages; it's used for that purpose in head and base pages. I suppose we could do something like ... static inline void set_page_pfmemalloc(struct page *page) { - page->index = -1UL; + page->lru.next = (void *)2; } if it's causing confusion.