@@ -647,22 +647,38 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip)
647647 return (send_status | accept_status );
648648}
649649
650+ void smp_announce (void )
651+ {
652+ int num_nodes = num_online_nodes ();
653+
654+ printk (KERN_INFO "x86: Booted up %d node%s, %d CPUs\n" ,
655+ num_nodes , (num_nodes > 1 ? "s" : "" ), num_online_cpus ());
656+ }
657+
650658/* reduce the number of lines printed when booting a large cpu count system */
651659static void announce_cpu (int cpu , int apicid )
652660{
653661 static int current_node = -1 ;
654662 int node = early_cpu_to_node (cpu );
655- static int width ;
663+ static int width , node_width ;
656664
657665 if (!width )
658666 width = num_digits (num_possible_cpus ()) + 1 ; /* + '#' sign */
659667
668+ if (!node_width )
669+ node_width = num_digits (num_possible_nodes ()) + 1 ; /* + '#' */
670+
671+ if (cpu == 1 )
672+ printk (KERN_INFO "x86: Booting SMP configuration:\n" );
673+
660674 if (system_state == SYSTEM_BOOTING ) {
661675 if (node != current_node ) {
662676 if (current_node > (-1 ))
663- pr_cont (" OK \n" );
677+ pr_cont ("\n" );
664678 current_node = node ;
665- pr_info ("Booting Node %3d, Processors:" , node );
679+
680+ printk (KERN_INFO ".... node %*s#%d, CPUs: " ,
681+ node_width - num_digits (node ), " " , node );
666682 }
667683
668684 /* Add padding for the BSP */
@@ -671,8 +687,6 @@ static void announce_cpu(int cpu, int apicid)
671687
672688 pr_cont ("%*s#%d" , width - num_digits (cpu ), " " , cpu );
673689
674- if (cpu == num_present_cpus () - 1 )
675- pr_cont (" OK\n" );
676690 } else
677691 pr_info ("Booting Node %d Processor %d APIC 0x%x\n" ,
678692 node , cpu , apicid );
0 commit comments