KVM: nVMX: Update guest activity state field on L2 exits
authorJan Kiszka <jan.kiszka@siemens.com>
Sat, 4 Jan 2014 17:47:24 +0000 (18:47 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 17 Jan 2014 09:22:18 +0000 (10:22 +0100)
Set guest activity state in L1's VMCS according to the VCPUs mp_state.
This ensures we report the correct state in case we L2 executed HLT or
if we put L2 into HLT state and it was now woken up by an event.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c

index f9a5433..407b05c 100644 (file)
@@ -8219,6 +8219,10 @@ static void prepare_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
                vmcs_read32(GUEST_INTERRUPTIBILITY_INFO);
        vmcs12->guest_pending_dbg_exceptions =
                vmcs_readl(GUEST_PENDING_DBG_EXCEPTIONS);
+       if (vcpu->arch.mp_state == KVM_MP_STATE_HALTED)
+               vmcs12->guest_activity_state = GUEST_ACTIVITY_HLT;
+       else
+               vmcs12->guest_activity_state = GUEST_ACTIVITY_ACTIVE;
 
        if ((vmcs12->pin_based_vm_exec_control & PIN_BASED_VMX_PREEMPTION_TIMER) &&
            (vmcs12->vm_exit_controls & VM_EXIT_SAVE_VMX_PREEMPTION_TIMER))