Also called the zoned page frame allocator, this serves as an interface for physically contiguous allocations in multiples of page size. Allocation operations are carried out by looking into appropriate zones for free pages. Physical pages in each zone are managed by Buddy System, which serves as the backend algorithm for the page frame allocator:
Kernel code can initiate memory allocation/deallocation operations on this algorithm through interface inline functions and macros provided in the kernel header linux/include/gfp.h:
static inline struct page *alloc_pages(gfp_t gfp_mask, unsigned int order);
The first parameter ...