Create VM exits when guest executes IRET on Intel CPU ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear KVM experts,

I am trying to create a VM exit whenever the guest OS executes a IRET
instruction. I am using a Intel i5,3.3Ghz,VT-x/EPT processor and KVM
version 3.10.1.

I tried several combinations of the following settings but with little
success.

1) Set/Unset Virtual NMIs which is bit 5 in pin based vm execution control
2) Set/Unset bit 3 in guest interruptibility state (Blocking by NMI)
3) Set/Unset "NMI-blocking" which is bit 3 in pin based NMI exiting
4) Set/Unset "NMI-window exiting" which is bit 22 in primary processor
based VM execution control.

The intel manual says the following about creating vm exits when IRET is
executed : "NMI-window exiting. If the “virtual NMIs” VM-execution is set,
the processor tracks virtual-NMI blocking. The “NMI-window exiting”
VM-execution control (Section 24.6.2) causes VM exits when there is no
virtual-NMI blocking. For example, after execution of the IRET instruction,
a VM exit occurs if the “NMI-window exiting” VMexecution control is 1. This
feature allows a VMM to queue a virtual NMI to a guest when the guest is
not ready to receive NMIs. The VMM can set the “NMI-window exiting”
VM-execution control for the guest and depend on a VM exit to know when the
guest becomes ready for NMIs (and, therefore, when it can inject a virtual
NMI). The VMM can detect such VM exits by checking for the basic exit
reason “NMI window” (value = 8). If this feature is not used, the VMM will
need to poll and check the interruptibility state of the guest to deliver
virtual NMIs."

I will be very thankful for any help from you to allow intercepting (cause
VM exits) when guest executes IRET.

Thanks!




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux