In order to facilitate fast initialization of page structs for preserved pages, memblocks with preserved pages must not cross numa node boundaries and must have a node id assigned to them. Signed-off-by: Anthony Yznaga <anthony.yznaga@xxxxxxxxxx> --- mm/pkram.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mm/pkram.c b/mm/pkram.c index aea069cc49be..b8d6b549fa6c 100644 --- a/mm/pkram.c +++ b/mm/pkram.c @@ -21,6 +21,7 @@ #include <linux/sysfs.h> #include <linux/types.h> +#include <asm/numa.h> #include "internal.h" #define PKRAM_MAGIC 0x706B726D @@ -226,6 +227,14 @@ void __init pkram_reserve(void) return; } + /* + * Fix up the reserved memblock list to ensure the + * memblock regions are split along node boundaries + * and have a node ID set. This will allow the page + * structs for the preserved pages to be initialized + * more efficiently. + */ + numa_isolate_memblocks(); done: pr_info("PKRAM: %lu pages reserved\n", pkram_reserved_pages); } -- 1.8.3.1