As I've been reading this discussion, it seems very x86 centric. I've thinking about adding
void intr_distribute(void *ih, const kcpuset_t *newset, kcpuset_t *oldset) for my ports that can do MP. This could be used to obtain the current set of cpus setup to receive interrupt for <ih> or set a new sets of cpus. To set an interrupt across all CPUs, you could use intr_distribibute(ih, &kcpuset_running, NULL); By default only the boot CPU would be setup to get interrupts when the interrupt was established.