diff mbox

[3/6] x86: Minimize initial Bootmem messages

Message ID 20110121202503.329746830@gulag1.americas.sgi.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mike Travis Jan. 21, 2011, 8:25 p.m. UTC
None
diff mbox

Patch

--- linux-2.6.32.orig/arch/x86/kernel/e820.c
+++ linux-2.6.32/arch/x86/kernel/e820.c
@@ -922,29 +922,42 @@  void __init free_early(u64 start, u64 en
 
 void __init early_res_to_bootmem(u64 start, u64 end)
 {
-	int i, count;
+	int i, count, same = 1;
 	u64 final_start, final_end;
+	static struct early_res prev[MAX_EARLY_RES] __initdata;
 
 	count  = 0;
-	for (i = 0; i < MAX_EARLY_RES && early_res[i].end; i++)
+	for (i = 0; i < MAX_EARLY_RES && early_res[i].end; i++) {
+		/* remove redundant messages */
+		if (prev[i].start != early_res[i].start ||
+		    prev[i].end != early_res[i].end) {
+			prev[i].start = early_res[i].start;
+			prev[i].end = early_res[i].end;
+			same =  0;
+		}
 		count++;
+	}
+	if (same) {
+		pr_cont("ER:%d %llx+%llx\n", count, start, end-start);
+		return;
+	}
+
+	pr_info("Early Reservations: %d [%llx+%llx]\n",
+		count, start, end-start);
 
-	printk(KERN_INFO "(%d early reservations) ==> bootmem [%010llx - %010llx]\n",
-			 count, start, end);
 	for (i = 0; i < count; i++) {
 		struct early_res *r = &early_res[i];
-		printk(KERN_INFO "  #%d [%010llx - %010llx] %16s", i,
+		pr_info("  #%d [%010llx - %010llx] %16s", i,
 			r->start, r->end, r->name);
 		final_start = max(start, r->start);
 		final_end = min(end, r->end);
 		if (final_start >= final_end) {
-			printk(KERN_CONT "\n");
+			pr_cont("\n");
 			continue;
 		}
-		printk(KERN_CONT " ==> [%010llx - %010llx]\n",
-			final_start, final_end);
+		pr_cont(" ==> [%010llx - %010llx]\n", final_start, final_end);
 		reserve_bootmem_generic(final_start, final_end - final_start,
-				BOOTMEM_DEFAULT);
+			BOOTMEM_DEFAULT);
 	}
 }
 
--- linux-2.6.32.orig/arch/x86/mm/numa_64.c
+++ linux-2.6.32/arch/x86/mm/numa_64.c
@@ -201,9 +201,6 @@  setup_node_bootmem(int nodeid, unsigned
 
 	start = roundup(start, ZONE_ALIGN);
 
-	printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid,
-	       start, end);
-
 	start_pfn = start >> PAGE_SHIFT;
 	last_pfn = end >> PAGE_SHIFT;
 
@@ -219,8 +216,6 @@  setup_node_bootmem(int nodeid, unsigned
 	if (node_data[nodeid] == (void *)cache_alias_offset)
 		return;
 	nodedata_phys = __pa(node_data[nodeid]);
-	printk(KERN_INFO "  NODE_DATA [%016lx - %016lx]\n", nodedata_phys,
-		nodedata_phys + pgdat_size - 1);
 
 	memset(NODE_DATA(nodeid), 0, sizeof(pg_data_t));
 	NODE_DATA(nodeid)->bdata = &bootmem_node_data[nodeid];
@@ -258,12 +253,11 @@  setup_node_bootmem(int nodeid, unsigned
 					 bootmap_start >> PAGE_SHIFT,
 					 start_pfn, last_pfn);
 
-	printk(KERN_INFO "  bootmap [%016lx -  %016lx] pages %lx\n",
-		 bootmap_start, bootmap_start + bootmap_size - 1,
-		 bootmap_pages);
-
 	free_bootmem_with_active_regions(nodeid, end);
 
+	pr_info("Bootmem Node %d: data %lx map %lx+%lx pgs %lx ",
+		nodeid, start, bootmap_start, bootmap_size, bootmap_pages);
+
 	/*
 	 * convert early reserve to bootmem reserve earlier
 	 * otherwise early_node_mem could use early reserved mem