Annotate vital static information into kmemdump: - node_data Information on these variables is stored into dedicated kmemdump section. Register dynamic information into kmemdump: - dynamic node data for each node This information is being allocated for each node, as physical address, so call kmemdump_phys_alloc_size that will allocate an unique kmemdump uid, and register the virtual address. Signed-off-by: Eugen Hristev <eugen.hristev@xxxxxxxxxx> --- mm/numa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/numa.c b/mm/numa.c index 7d5e06fe5bd4..88cada571171 100644 --- a/mm/numa.c +++ b/mm/numa.c @@ -4,9 +4,11 @@ #include <linux/printk.h> #include <linux/numa.h> #include <linux/numa_memblks.h> +#include <linux/kmemdump.h> struct pglist_data *node_data[MAX_NUMNODES]; EXPORT_SYMBOL(node_data); +KMEMDUMP_VAR_CORE(node_data, MAX_NUMNODES * sizeof(struct pglist_data)); /* Allocate NODE_DATA for a node on the local memory */ void __init alloc_node_data(int nid) @@ -16,7 +18,8 @@ void __init alloc_node_data(int nid) int tnid; /* Allocate node data. Try node-local memory and then any node. */ - nd_pa = memblock_phys_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid); + nd_pa = kmemdump_phys_alloc_size(nd_size, memblock_phys_alloc_try_nid, + nd_size, SMP_CACHE_BYTES, nid); if (!nd_pa) panic("Cannot allocate %zu bytes for node %d data\n", nd_size, nid); -- 2.43.0