@@ -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