page poison,内存毒药,page free时给page填充特定字节0xaa,在page alloc时check page内容是否有非0xaa的字节,
有的话,代表当前分配的page被其他page盖到,或者说这个page周边的page有发生内存溢出;
代码实现在debug_pagealloc.c中的kernel_map_pages:
kernel/mm/Makefile:obj-$(CONFIG_PAGE_POISONING) += debug-pagealloc.o
void kernel_map_pages(struct page *page, int numpages, int enable)
enable为0 free page时调用,1是alloc page时调用
static bool free_pages_prepare(struct page *page, unsigned int order)
{
kernel_map_pages(page, 1 << order, 0);
}