Virtualization on Windows

Virtualization on Windows


This is an edit of my previous post ... 'better' understanding of the problem.

In my VMM I have enabled the following PIN Cntrl Bits:

- Pre-emption timer

- External Interrupts exit

- NMI exit

For the Primary Proc cntrl bits:

- CR3 load/store exiting (these are enabled in the MSR)

No Secondary Proc bits enabled

For the VM Enter bits:

- Guest LMA

For the VM Exit bits:

- Host LMA

- Save timer

So a pretty simple configuration ...

With this configuration, I can run some basic looping code in the virtual env and I receive vmexits for the pre-emption timer as expected. I also receive vmexits for external interrupts, as expected. The problem occurs when an IPI is issued at the processor I am running on while I have my code running on it. In this case, I do NOT receive a vmexit.

According to the Intel docs, IPIs are handled special through the local APIC but even having the 'virtualize APIC accesses' bit set in the Secondary Proc control bits does not trigger a vmexit.

Any suggestions on how I can get these IPIs to trigger a vmexit would be great.




3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

As a follow up to this, it appears that an IPI IS being issued to the processor which I am running my VT code. This IPI is not resulting in a vmexit.


I Simply loved this Article , nice write up Peter S.

Dinu | Tech Support

A powerful mind can bringin Peace or Destruction.


Leave a Comment

Please sign in to add a comment. Not a member? Join today