Il 04/01/2014 18:47, Jan Kiszka ha scritto:
> From: Jan Kiszka <jan.kis...@siemens.com>
> 
> 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.kis...@siemens.com>
> ---
>  arch/x86/kvm/vmx.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index bde8ddd..1245ff1 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -8223,6 +8223,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))
> 

So, without this patch, CPU_BASED_HLT_EXITING should have been set in
nested_vmx_procbased_ctls_low (because disabling HLT exits means L2 can
go "spontaneously" to KVM_MP_STATE_HALTED and without this patch it
would exit the HLT on a subsequent unrelated vmexit).

I cannot think of any other control that we do not support disabling,
but perhaps I'm missing something.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to