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:
parent
0b46b417fc
commit
410cde006a
@ -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)) &
|
||||||
|
Loading…
Reference in New Issue
Block a user