On Tue, Apr 28, 2015 at 7:37 AM, Mel Gorman <mgorman@xxxxxxx> wrote: > Currently each page struct is set as reserved upon initialization. > This patch leaves the reserved bit clear and only sets the reserved bit > when it is known the memory was allocated by the bootmem allocator. This > makes it easier to distinguish between uninitialised struct pages and > reserved struct pages in later patches. On ia64 my linux-next builds now report a bunch of messages like this: put_kernel_page: page at 0xe000000005588000 not in reserved memory put_kernel_page: page at 0xe000000005588000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory put_kernel_page: page at 0xe000000005580000 not in reserved memory the two different pages match up with two objects from the loaded kernel that get mapped by arch/ia64/mm/init.c:setup_gate() a000000101588000 D __start_gate_section a000000101580000 D empty_zero_page Should I look for a place to set the reserved bit on page structures for these addresses? Or just remove the test and message in put_kernel_page() [I added a debug "else" clause here - every caller passes in a page that is not reserved] if (!PageReserved(page)) printk(KERN_ERR "put_kernel_page: page at 0x%p not in reserved memory\n", page_address(page)); -Tony -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>