svn commit: r213868 - head/sys/sparc64/sparc64

Marius Strobl marius at FreeBSD.org
Thu Oct 14 21:34:53 UTC 2010


Author: marius
Date: Thu Oct 14 21:34:53 2010
New Revision: 213868
URL: http://svn.freebsd.org/changeset/base/213868

Log:
  - In the spirit of r212559 add a comment describing what will eventually
    lower the PIL.
  - Just as with the AP ensure that the (S)TICK timer(s) are in a known
    state when starting BSPs.

Modified:
  head/sys/sparc64/sparc64/mp_machdep.c

Modified: head/sys/sparc64/sparc64/mp_machdep.c
==============================================================================
--- head/sys/sparc64/sparc64/mp_machdep.c	Thu Oct 14 21:30:13 2010	(r213867)
+++ head/sys/sparc64/sparc64/mp_machdep.c	Thu Oct 14 21:34:53 2010	(r213868)
@@ -433,6 +433,12 @@ cpu_mp_bootstrap(struct pcpu *pc)
 	 */
 	cache_enable(pc->pc_impl);
 
+	/*
+	 * Clear (S)TICK timer(s) (including NPT) and ensure they are stopped.
+	 */
+	tick_clear(pc->pc_impl);
+	tick_stop(pc->pc_impl);
+
 	/* Lock the kernel TSB in the TLB. */
 	pmap_map_tsb();
 
@@ -445,7 +451,11 @@ cpu_mp_bootstrap(struct pcpu *pc)
 	/* Initialize global registers. */
 	cpu_setregs(pc);
 
-	/* Enable interrupts. */
+	/*
+	 * Enable interrupts.
+	 * Note that the PIL we be lowered indirectly via sched_throw(NULL)
+	 * when fake spinlock held by the idle thread eventually is released.
+	 */
 	wrpr(pstate, 0, PSTATE_KERNEL);
 
 	smp_cpus++;


More information about the svn-src-head mailing list