Xen (and others Hypervisors) how do they handle IPIs?

Peter Grehan grehan at freebsd.org
Thu Sep 26 08:23:26 UTC 2013


Hi Julian,

> If CPUs are mapped around, how are IPIs handled? I assume they must be
> emulated?

  For bhyve, if the target vCPU of an IPI is running, a null IPI is sent 
on the host to force it to exit so the IPI can be injected 
(vmm.c:vm_interrupt_hostcpu()).

  If the target is asleep due to being idle, it is woken up. And, if the 
target is running but not in vCPU context, an interrupt is queued up so 
it will be injected on the next vmenter (subject to the emulated local 
APIC interrupt priority)

> Does anyone know if BHyVe or HyperV also have this problem?

  Hmmm, hard to say. Would you be able to try your workload out on a 
bhyve system ?

later,

Peter.



More information about the freebsd-virtualization mailing list