For
HVM guest, i.e., VMX guest, the execution of IRET
is
similar
to that
on native
system, but of course there are important
differences :) -- you should read the related
chapters (i.e., “event injection”) in Intel Software
Developer’s Manual 3B, and you should also
look at the Xen code (i.e., the vioapic.c, vlapic.c, vmx/vmx.c, vmx/intr.c in the directory
xen/arch/x86/hvm/).
Note:
HVM guest doesn’t touch physical interrupt (and the
physical pic/ioapic /local_apic)
--here we don’t consider VT-d;
Xen only “injects” *virtual* interrupts into HVM guest with the help of the emulation of
Device Model.
When
HVM vcpu is running, if a physical interrupt happens, a VMExit
will occur to
interrupt the execution of the HVM vcpu, then Xen handles the physical interrupt.
--
Dexuan