Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 May 2006 20:58:01 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 97823 for review
Message-ID:  <200605252058.k4PKw1W3059765@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=97823

Change 97823 by kmacy@kmacy_storage:sun4v_work on 2006/05/25 20:57:30

	only print total number of CPUS on startup
	shorten AP string
	don't repeatedly print out device info for pci bus on SUN4V

Affected files ...

.. //depot/projects/kmacy_sun4v/src/sys/kern/subr_bus.c#7 edit
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/mp_machdep.c#8 edit

Differences ...

==== //depot/projects/kmacy_sun4v/src/sys/kern/subr_bus.c#7 (text+ko) ====

@@ -28,6 +28,7 @@
 __FBSDID("$FreeBSD: src/sys/kern/subr_bus.c,v 1.191 2006/04/20 01:44:16 jmg Exp $");
 
 #include "opt_bus.h"
+#include "opt_global.h"
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -3460,14 +3461,17 @@
 			flags &= ~INTR_MPSAFE;
 		error = BUS_SETUP_INTR(dev->parent, dev, r, flags,
 		    handler, arg, cookiep);
+#ifndef SUN4V
 		if (error == 0) {
 			if (!(flags & (INTR_MPSAFE | INTR_FAST)))
 				device_printf(dev, "[GIANT-LOCKED]\n");
 			if (bootverbose && (flags & INTR_MPSAFE))
 				device_printf(dev, "[MPSAFE]\n");
+
 			if (flags & INTR_FAST)
 				device_printf(dev, "[FAST]\n");
 		}
+#endif
 	} else
 		error = EINVAL;
 	return (error);

==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/mp_machdep.c#8 (text+ko) ====

@@ -184,32 +184,7 @@
 {
 	return (mp_maxid > 0);
 }
-#if 0
-static void
-start_ap(phandle_t cpu, void *func, u_long arg)
-{
-	static struct {
-		cell_t	name;
-		cell_t	nargs;
-		cell_t	nreturns;
-		cell_t	cpu;
-		cell_t	func;
-		cell_t	arg;
-	} args = {
-		(cell_t)"SUNW,start-cpu",
-		3,
-		0,
-		0,
-		0,
-		0
-	};
 
-	args.cpu = cpu;
-	args.func = (cell_t)func;
-	args.arg = (cell_t)arg;
-	openfirmware(&args);
-}
-#else
 static int
 start_ap_bycpuid(int cpuid, void *func, u_long arg)
 {
@@ -238,29 +213,7 @@
 	return (int)args.result;
 	
 }
-#endif
-/*
- * Stop the calling CPU.
- */
-static void
-sun4u_stopself(void)
-{
-#if 0
-	static struct {
-		cell_t	name;
-		cell_t	nargs;
-		cell_t	nreturns;
-	} args = {
-		(cell_t)"SUNW,stop-self",
-		0,
-		0,
-	};
 
-	openfirmware_exit(&args);
-#endif
-	panic("sun4u_stopself: failed.");
-}
-
 /*
  * Fire up any non-boot processors.
  */
@@ -304,11 +257,7 @@
 		mp_ncpus = cpuid + 1;
 #if 0
 		cpu_identify(0, clock, cpuid);
-#else
-	printf("cpu%d: UltraSparc T1 Processor (%d.%02d MHz CPU)\n", cpuid,
-	    (clock + 4999) / 1000000, ((clock + 4999) / 10000) % 100);
 #endif
-
 		va = kmem_alloc(kernel_map, PCPU_PAGES * PAGE_SIZE);
 		pc = (struct pcpu *)(va + (PCPU_PAGES * PAGE_SIZE)) - 1;
 		pcpu_init(pc, cpuid, sizeof(*pc));
@@ -320,6 +269,9 @@
 		if (mp_ncpus == MAXCPU)
 			break;
 	}
+	printf("%d cpus: UltraSparc T1 Processor (%d.%02d MHz CPU)\n", mp_ncpus,
+	    (clock + 4999) / 1000000, ((clock + 4999) / 10000) % 100);
+
 	PCPU_SET(other_cpus, all_cpus & ~(1 << PCPU_GET(cpuid)));
 	smp_active = 1;
 }
@@ -385,7 +337,7 @@
 	smp_cpus++;
 	KASSERT(curthread != NULL, ("cpu_mp_bootstrap: curthread"));
 	PCPU_SET(other_cpus, all_cpus & ~(1 << PCPU_GET(cpuid)));
-	printf("SMP: AP CPU #%d Launched!\n", PCPU_GET(cpuid));
+	printf("AP: #%d\n", PCPU_GET(cpuid));
 	csa->csa_count--;
 	membar(StoreLoad);
 	csa->csa_state = CPU_BOOTSTRAP;
@@ -437,7 +389,7 @@
 	while ((started_cpus & PCPU_GET(cpumask)) == 0) {
 		if ((shutdown_cpus & PCPU_GET(cpumask)) != 0) {
 			atomic_clear_int(&shutdown_cpus, PCPU_GET(cpumask));
-			sun4u_stopself();
+			OF_exit();
 		}
 	}
 	atomic_clear_rel_int(&started_cpus, PCPU_GET(cpumask));
@@ -495,7 +447,6 @@
 		if (error)
 			panic("can't handle error %d from cpu_mondo_send\n", error);
 	}
-
 }
 
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605252058.k4PKw1W3059765>