On Fri, Jun 4, 2021 at 9:08 PM Matthew Wilcox [off-list ref] wrote:
On Fri, Jun 04, 2021 at 08:33:45PM +0200, Matteo Croce wrote:
quoted
@@ -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.
If you prefer, ok for me.
Why not "(void *)BIT(1)"? Just to remark that it's a single bit and
not a magic like value?
--
per aspera ad upstream