On server systems with high interrupt load, it is possible that our
boot-time round-robin interrupt assignment places two or more high-rate
interrupts on the same core. This causes unnecessary preemption.
irqrebalance(8) dynamically moves interrupts at runtime to try and
distribute load from different interrupt sources.
This component can be disabled (e.g., on small systems) with
MK_IRQREBALANCE=no.
As part of this work, the cpuset_get/setaffinity() APIs have been
extended to add an IRQ placement only and ithread-only API. The generic
intr_event_bind function has also been extended with sibling methods.
The service can be enabled in rc.conf with irqrebalance_enable="YES".