[RFC v2 29/43] PKRAM: ensure memblocks with preserved pages init'd for numa

From: Anthony Yznaga
Date: Tue Mar 30 2021 - 17:29:01 EST


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