svn commit: r326206 - head/sys/powerpc/powerpc

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sat Nov 25 22:01:57 UTC 2017


Author: nwhitehorn
Date: Sat Nov 25 22:01:55 2017
New Revision: 326206
URL: https://svnweb.freebsd.org/changeset/base/326206

Log:
  Yield while spinning on APs and avoid announcing all CPUs unless bootverbose
  is set. These improve startup performance on massively multithreaded systems
  with 8-way SMT and dozens to hundreds of CPUs.
  
  MFC after:	3 weeks

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

Modified: head/sys/powerpc/powerpc/mp_machdep.c
==============================================================================
--- head/sys/powerpc/powerpc/mp_machdep.c	Sat Nov 25 21:59:59 2017	(r326205)
+++ head/sys/powerpc/powerpc/mp_machdep.c	Sat Nov 25 22:01:55 2017	(r326206)
@@ -78,7 +78,8 @@ machdep_ap_bootstrap(void)
 	__asm __volatile("msync; isync");
 
 	while (ap_letgo == 0)
-		;
+		__asm __volatile("or 27,27,27");
+	__asm __volatile("or 6,6,6");
 
 	/* Initialize DEC and TB, sync with the BSP values */
 	platform_smp_timebase_sync(ap_timebase, 1);
@@ -176,6 +177,9 @@ cpu_mp_announce(void)
 {
 	struct pcpu *pc;
 	int i;
+
+	if (!bootverbose)
+		return;
 
 	CPU_FOREACH(i) {
 		pc = pcpu_find(i);


More information about the svn-src-head mailing list