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
This commit is contained in:
nwhitehorn 2017-11-25 22:01:55 +00:00
parent 53d7b1890a
commit 0590c5567e

View File

@ -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);
@ -177,6 +178,9 @@ cpu_mp_announce(void)
struct pcpu *pc;
int i;
if (!bootverbose)
return;
CPU_FOREACH(i) {
pc = pcpu_find(i);
if (pc == NULL)