K 10 svn:author V 4 neel K 8 svn:date V 27 2013-07-09T23:54:43.946319Z K 7 svn:log V 847 Change the vcpu state handling in preparation for doing instruction emulation. The long story: Currently the instruction fetch, decode and emulation are done in the vmx run loop i.e. in a critical section from the point of view of the host. This is no longer feasible because the VM's memory is now pageable. Accessing the VM's address space now relies on 'vm_fault_hold()' to hold the 'vm_page' associated with the GPA and this cannot be done inside a critical section. However, as soon as we exit the critical section around VMRUN(), the VMCS is no longer "active" and thus the vcpu cannot be in the RUNNING state. We work around this by keeping the vcpu in the FROZEN state while it is outside the VMRUN critical section. A vcpu in this state may transition back into RUNNING state or may return to IDLE state on its way back to userland. END