Skip to contentSkip to conversation

NUMA-Q: memset pgdats later in boot

PATCH New William Lee Irwin III 1 participant 1 message Nov 12, 2002

lore
Share & tools
lore
#0 lore raw

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
diff -urpN 00_late_list/arch/i386/mm/discontig.c 01_late_memset/arch/i386/mm/discontig.c
@@ -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);
 	}