Skip to contentSkip to conversation

Correct CPUs printout on boot.

PATCH [email protected] 3 participants 3 messages Jan 23, 2004 – Jan 24, 2004

lore
Share & tools
lore
#0 lore raw

This currently prints out the maximum number of CPUs the kernel is configured to support, instead of the actual number that the kernel brought up. Which results in odd displays that look like you have more CPUs than you do.

Dave

init/main.c renamed from init/main.c~ +3 -2
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/init/main.c linux-2.5/init/main.c
@@ -339,7 +339,7 @@
 /* Called by boot processor to activate the rest. */
 static void __init smp_init(void)
 {
-	unsigned int i;
+	unsigned int i, j=0;
 
 	/* FIXME: This should be done in userspace --RR */
 	for (i = 0; i < NR_CPUS; i++) {
@@ -348,11 +348,12 @@
 		if (cpu_possible(i) && !cpu_online(i)) {
 			printk("Bringing up %i\n", i);
 			cpu_up(i);
+			j++;
 		}
 	}
 
 	/* Any cleanup work */
-	printk("CPUS done %u\n", max_cpus);
+	printk("CPUS done %u\n", j);
 	smp_cpus_done(max_cpus);
 #if 0
 	/* Get other processors into their bootup holding patterns. */
#1 lore raw
Quoted 4 lines · On Friday 23 January 2004 12:35 am, [email protected] wrote:

This currently prints out the maximum number of CPUs the kernel is configured to support, instead of the actual number that the kernel brought up. Which results in odd displays that look like you have more CPUs than you do.

Why do you have to declare a new variable? Can't you just do this? i is already counting how many cpu's we've brought up and its of the same type j.

- printk("CPUS done %u\n", max_cpus);
+ printk("CPUS done %u\n", i);

Quoted 18 lines

Dave

diff -urpN --exclude-from=/home/davej/.exclude bk-linus/init/main.c
linux-2.5/init/main.c --- linux-2.5/init/main.c~ Fri Jan 23 06:24:12 2004
+++ linux-2.5/init/main.c Fri Jan 23 06:24:44 2004

init/main.c renamed from init/main.c~ +1 -1
@@ -339,7 +339,7 @@
 /* Called by boot processor to activate the rest. */
 static void __init smp_init(void)
 {
-	unsigned int i;
+	unsigned int i, j=0;
 
 	/* FIXME: This should be done in userspace --RR */
 	for (i = 0; i < NR_CPUS; i++) {
@@ -348,11 +348,12 @@
 		if (cpu_possible(i) && !cpu_online(i)) {
 			printk("Bringing up %i\n", i);
 			cpu_up(i);

init/main.c line 359

Quoted 10 lines
init/main.c renamed from init/main.c~ +2 -1
+			j++;
 		}
 	}
 
 	/* Any cleanup work */
-	printk("CPUS done %u\n", max_cpus);
+	printk("CPUS done %u\n", j);
 	smp_cpus_done(max_cpus);
 #if 0
 	/* Get other processors into their bootup holding patterns. */

-------------------------
Eric Bambach
Eric at cisu dot net
-------------------------

#2 lore raw
Quoted 10 lines · Eric
Quoted 5 lines · On Friday 23 January 2004 12:35 am, [email protected] wrote:

This currently prints out the maximum number of CPUs the kernel is configured to support, instead of the actual number that the kernel brought up. Which results in odd displays that look like you have more CPUs than you do.

Why do you have to declare a new variable? Can't you just do this? i is already counting how many cpu's we've brought up and its of the same type j.

CPU numbering is allowed to be sparse. Besides, i still counts up to NR_CPUS even if CPU numbering isn't sparse.