Unleash the APs at SI_SUB_KICK_SCHEDULER so that we have them all

up and running to service interrupts. This is especially important
when the firmware has bound interrupts to CPUs, like for the SGI
Altix 350. We wake up APs at SI_SUB_CPU time and they sit and spin
until we unleash them, so there's nothing fundamentally different
from a MD perspective.
This commit is contained in:
Marcel Moolenaar 2012-07-08 17:43:25 +00:00
parent eb90003fa8
commit 6d5cb58b5f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=238256

View File

@ -466,6 +466,7 @@ cpu_mp_unleash(void *dummy)
*/
ia64_bind_intr();
}
SYSINIT(start_aps, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, cpu_mp_unleash, NULL);
/*
* send an IPI to a set of cpus.
@ -522,5 +523,3 @@ ipi_send(struct pcpu *cpu, int xiv)
ia64_mf_a();
CTR3(KTR_SMP, "ipi_send(%p, %d): cpuid=%d", cpu, xiv, PCPU_GET(cpuid));
}
SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, cpu_mp_unleash, NULL);