Re: [PATCH] KVM: VMX: blocked-by-sti must not defer NMI injections

2010-05-12 Thread Marcelo Tosatti
On Tue, May 11, 2010 at 03:16:46PM +0200, Jan Kiszka wrote:
 As the processor may not consider GUEST_INTR_STATE_STI as a reason for
 blocking NMI, it could return immediately with EXIT_REASON_NMI_WINDOW
 when we asked for it. But as we consider this state as NMI-blocking, we
 can run into an endless loop.
 
 Resolve this by allowing NMI injection if just GUEST_INTR_STATE_STI is
 active (originally suggested by Gleb). Intel confirmed that this is
 safe, the processor will never complain about NMI injection in this
 state.
 
 Signed-off-by: Jan Kiszka jan.kis...@siemens.com
 KVM-Stable-Tag
 ---
  arch/x86/kvm/vmx.c |3 +--
  1 files changed, 1 insertions(+), 2 deletions(-)

Applied, thanks.

--
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


[PATCH] KVM: VMX: blocked-by-sti must not defer NMI injections

2010-05-11 Thread Jan Kiszka
As the processor may not consider GUEST_INTR_STATE_STI as a reason for
blocking NMI, it could return immediately with EXIT_REASON_NMI_WINDOW
when we asked for it. But as we consider this state as NMI-blocking, we
can run into an endless loop.

Resolve this by allowing NMI injection if just GUEST_INTR_STATE_STI is
active (originally suggested by Gleb). Intel confirmed that this is
safe, the processor will never complain about NMI injection in this
state.

Signed-off-by: Jan Kiszka jan.kis...@siemens.com
KVM-Stable-Tag
---
 arch/x86/kvm/vmx.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 777e00d..fa3959b 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -2824,8 +2824,7 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
return 0;
 
return  !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) 
-   (GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS |
-   GUEST_INTR_STATE_NMI));
+   (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_NMI));
 }
 
 static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu)

--
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


Re: [PATCH] KVM: VMX: blocked-by-sti must not defer NMI injections

2010-05-11 Thread Gleb Natapov
On Tue, May 11, 2010 at 03:16:46PM +0200, Jan Kiszka wrote:
 As the processor may not consider GUEST_INTR_STATE_STI as a reason for
 blocking NMI, it could return immediately with EXIT_REASON_NMI_WINDOW
 when we asked for it. But as we consider this state as NMI-blocking, we
 can run into an endless loop.
 
 Resolve this by allowing NMI injection if just GUEST_INTR_STATE_STI is
 active (originally suggested by Gleb). Intel confirmed that this is
 safe, the processor will never complain about NMI injection in this
 state.
 
 Signed-off-by: Jan Kiszka jan.kis...@siemens.com
Acked-by: Gleb Natapovg...@redhat.com

 KVM-Stable-Tag
 ---
  arch/x86/kvm/vmx.c |3 +--
  1 files changed, 1 insertions(+), 2 deletions(-)
 
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
 index 777e00d..fa3959b 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -2824,8 +2824,7 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
   return 0;
  
   return  !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) 
 - (GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS |
 - GUEST_INTR_STATE_NMI));
 + (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_NMI));
  }
  
  static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu)

--
Gleb.
--
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