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);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"