Folio
commit 7b230db3b8d373219f88a3d25c8fbbf12cc7f233
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date: Sun Dec 6 22:22:48 2020 -0500
mm: Introduce struct folio
A struct folio is a new abstraction to replace the venerable struct page.
A function which takes a struct folio argument declares that it will
operate on the entire (possibly compound) page, not just PAGE_SIZE bytes.
In return, the caller guarantees that the pointer it is passing does
not point to a tail page. No change to generated code.struct folio {
/* private: don't document the anon union */
union {
struct {
/* public: */
unsigned long flags;
...
};
struct page page;
};
union {
struct {
unsigned long _flags_1;
unsigned long _head_1;
...
};
struct page __page_1;
};
union {
struct {
unsigned long _flags_2;
unsigned long _head_2;
...
};
struct page __page_2;
};
union {
struct {
unsigned long _flags_3;
...
};
struct page __page_3;
};
};Last updated