summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2012-07-08 17:43:25 +0000
committermarcel <marcel@FreeBSD.org>2012-07-08 17:43:25 +0000
commitbfa21239bc8d06798b0135e51be7bdad2368cad8 (patch)
tree5abdb610e87ab64d4a7906ef86ca71c91994d926 /sys/ia64
parentff7c2d6b192439e0adc338f1e5704d05d4b7680a (diff)
downloadFreeBSD-src-bfa21239bc8d06798b0135e51be7bdad2368cad8.zip
FreeBSD-src-bfa21239bc8d06798b0135e51be7bdad2368cad8.tar.gz
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.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/mp_machdep.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/ia64/ia64/mp_machdep.c b/sys/ia64/ia64/mp_machdep.c
index 0d8f241..77c12b7 100644
--- a/sys/ia64/ia64/mp_machdep.c
+++ b/sys/ia64/ia64/mp_machdep.c
@@ -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);
OpenPOWER on IntegriCloud