]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
INTRNG: only shuffle for !EARLY_AP_STARTUP
authormhorne <mhorne@FreeBSD.org>
Tue, 21 Jul 2020 22:47:02 +0000 (22:47 +0000)
committermhorne <mhorne@FreeBSD.org>
Tue, 21 Jul 2020 22:47:02 +0000 (22:47 +0000)
commit024d2edfe9d85a9c0f9a1dd6ba21a1d1acf183e2
tree2806630689fcde16076bb7b9b6160a391275e566
parentd82587d019f9bfd914822bcbb4a788eaadd8a716
INTRNG: only shuffle for !EARLY_AP_STARTUP

During device attachment, all interrupt sources will bind to the BSP,
as it is the only processor online. This means interrupts must be
redistributed ("shuffled") later, during SI_SUB_SMP.

For the EARLY_AP_STARTUP case, this is no longer true. SI_SUB_SMP will
execute much earlier, meaning APs will be online and available before
devices begin attachment, and there will therefore be nothing to
shuffle.

All PIC-conforming interrupt controllers will handle this early
distribution properly, except for RISC-V's PLIC. Make the necessary
tweak to the PLIC driver.

While here, convert irq_assign_cpu from a boolean_t to a bool.

Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D25693
sys/kern/subr_intr.c
sys/riscv/riscv/plic.c