VMM: Fix missed posted IRQs
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 10 Feb 2016 19:22:52 +0000 (14:22 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 11 Feb 2016 15:39:30 +0000 (10:39 -0500)
commitb2c2ea913d661c47f7d9f04759d8a333aaca5240
treed24476241ce2efad9c698b40692a51c50f9e8b72
parent43f65968f258274dd148dc94b11424b3e9d1aa70
VMM: Fix missed posted IRQs

There's a couple parts to it:

- vmrunkernel was not posting the IRQ properly; it wasn't setting the
  outstanding notification bit.

- We need to self_ipi when that bit is set.  We had previously lost a race
  when poking the guest pcore (IPI was sent, but not received while in a
VM).  We just resend the IPI.

For ease of access, I now store the posted_irq_desc in the GPC.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/x86/process64.c
kern/arch/x86/ros/vmm.h
kern/arch/x86/ros/vmx.h
kern/arch/x86/vmm/intel/vmx.c
kern/arch/x86/vmm/vmm.h
tests/vmm/vmrunkernel.c