NUMA-Q: memset pgdats later in boot
PATCH 2/9 NUMA-Q: memset pgdats later in boot
In order to remove the assumption that pgdats for nodes > 0 are mapped early, this patch moves the process of memset()'ing a node's pgdat into zone_sizes_init(), just before they're to be linked.
discontig.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-)
arch/i386/mm/discontig.c +4 -1
@@ -70,7 +70,8 @@ static void __init allocate_pgdat(int ni node_datasz =PFN_UP (sizeof (struct pglist_data ));NODE_DATA (nid) = (pg_data_t *)(__va (min_low_pfn <<PAGE_SHIFT )); min_low_pfn += node_datasz; -memset (NODE_DATA (nid),0 ,sizeof (struct pglist_data )); +if (!nid) +memset (NODE_DATA (nid),0 ,sizeof (pg_data_t)); }/*
@@ -281,6 +282,8 @@ void __init zone_sizes_init(void)*/ pgdat_list =NULL ;for (nid = numnodes -1 ; nid >=0 ; nid--) { +if (nid) +memset (NODE_DATA (nid),0 ,sizeof (pg_data_t));NODE_DATA (nid)->pgdat_next = pgdat_list; pgdat_list =NODE_DATA (nid); }