timers, init: Limit the number of per cpu calibration bootup messages
authorMike Travis <[email protected]>
Wed, 18 Nov 2009 00:22:13 +0000 (18:22 -0600)
committerIngo Molnar <[email protected]>
Thu, 26 Nov 2009 09:18:42 +0000 (10:18 +0100)
Limit the number of per cpu calibration messages by only
printing out results for the first cpu to boot.

Also, don't print "CPUx is down" as this is expected, and we
don't need 4096 reminders... ;-)

Signed-off-by: Mike Travis <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Roland Dreier <[email protected]>
Cc: Randy Dunlap <[email protected]>
Cc: Tejun Heo <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Yinghai Lu <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Rusty Russell <[email protected]>
Cc: Hidetoshi Seto <[email protected]>
Cc: Jack Steiner <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
LKML-Reference: <20091118002219.889552000@alcatraz.americas.sgi.com>
Signed-off-by: Ingo Molnar <[email protected]>
init/calibrate.c
kernel/cpu.c

index a379c9061199c64368936a88f91353992a4d5f92..6eb48e53d61c58869bdc8aa5250397a2594ab0e3 100644 (file)
@@ -123,23 +123,26 @@ void __cpuinit calibrate_delay(void)
 {
        unsigned long ticks, loopbit;
        int lps_precision = LPS_PREC;
+       static bool printed;
 
        if (preset_lpj) {
                loops_per_jiffy = preset_lpj;
-               printk(KERN_INFO
-                       "Calibrating delay loop (skipped) preset value.. ");
-       } else if ((smp_processor_id() == 0) && lpj_fine) {
+               if (!printed)
+                       pr_info("Calibrating delay loop (skipped) "
+                               "preset value.. ");
+       } else if ((!printed) && lpj_fine) {
                loops_per_jiffy = lpj_fine;
-               printk(KERN_INFO
-                       "Calibrating delay loop (skipped), "
+               pr_info("Calibrating delay loop (skipped), "
                        "value calculated using timer frequency.. ");
        } else if ((loops_per_jiffy = calibrate_delay_direct()) != 0) {
-               printk(KERN_INFO
-                       "Calibrating delay using timer specific routine.. ");
+               if (!printed)
+                       pr_info("Calibrating delay using timer "
+                               "specific routine.. ");
        } else {
                loops_per_jiffy = (1<<12);
 
-               printk(KERN_INFO "Calibrating delay loop... ");
+               if (!printed)
+                       pr_info("Calibrating delay loop... ");
                while ((loops_per_jiffy <<= 1) != 0) {
                        /* wait for "start of" clock tick */
                        ticks = jiffies;
@@ -170,7 +173,10 @@ void __cpuinit calibrate_delay(void)
                                loops_per_jiffy &= ~loopbit;
                }
        }
-       printk(KERN_CONT "%lu.%02lu BogoMIPS (lpj=%lu)\n",
+       if (!printed)
+               pr_cont("%lu.%02lu BogoMIPS (lpj=%lu)\n",
                        loops_per_jiffy/(500000/HZ),
                        (loops_per_jiffy/(5000/HZ)) % 100, loops_per_jiffy);
+
+       printed = true;
 }
index 6ba0f1ecb21230de60f6ab9fd7b2f58907b48d55..7c4e2713df0a9b12eb31c47b176134516968f6a2 100644 (file)
@@ -392,10 +392,9 @@ int disable_nonboot_cpus(void)
                if (cpu == first_cpu)
                        continue;
                error = _cpu_down(cpu, 1);
-               if (!error) {
+               if (!error)
                        cpumask_set_cpu(cpu, frozen_cpus);
-                       printk("CPU%d is down\n", cpu);
-               } else {
+               else {
                        printk(KERN_ERR "Error taking CPU%d down: %d\n",
                                cpu, error);
                        break;