Remove the IDR_CHEETAH_MAX_BN_PAIRS limit from cheetah_ipi_selected().

This is just a simple approach. For reasons unknown OpenSolaris uses a
more sophisticated one involving IPIing the remaining CPUs in reverse
order after the first batch of 32.
This commit is contained in:
Marius Strobl 2011-07-05 20:05:06 +00:00
parent 0b46b417fc
commit 410cde006a

View File

@ -139,8 +139,6 @@ static cpu_ipi_single_t spitfire_ipi_single;
SYSINIT(cpu_mp_unleash, SI_SUB_SMP, SI_ORDER_FIRST, cpu_mp_unleash, NULL); SYSINIT(cpu_mp_unleash, SI_SUB_SMP, SI_ORDER_FIRST, cpu_mp_unleash, NULL);
CTASSERT(MAXCPU <= IDR_CHEETAH_MAX_BN_PAIRS);
void void
mp_init(u_int cpu_impl) mp_init(u_int cpu_impl)
{ {
@ -696,6 +694,8 @@ cheetah_ipi_selected(cpuset_t cpus, u_long d0, u_long d1, u_long d2)
ASI_SDB_INTR_W, 0); ASI_SDB_INTR_W, 0);
membar(Sync); membar(Sync);
bnp++; bnp++;
if (bnp == IDR_CHEETAH_MAX_BN_PAIRS)
break;
} }
} }
while (((ids = ldxa(0, ASI_INTR_DISPATCH_STATUS)) & while (((ids = ldxa(0, ASI_INTR_DISPATCH_STATUS)) &