Re: KVM: VMX: flush TLB with INVEPT on cpu migration

2009-10-22 Thread Avi Kivity

On 10/21/2009 03:18 AM, Max Laier wrote:

On Friday 02 October 2009 00:16:58 you wrote:
   

It is possible that stale EPTP-tagged mappings are used, if a
vcpu migrates to a different pcpu.

Set KVM_REQ_TLB_FLUSH in vmx_vcpu_load, when switching pcpus, which
will invalidate both VPID and EPT mappings on the next vm-entry.
 

Thank you - I was at the brink of a nervous break-down before discovering
this.  Maybe it would help for the future to add a comment to
ept_misconfig_inspect_spte that explains that this might be caused by out of
sync tlbs, too (esp. when it doesn't show an apparent cause of the misconfig)
   


In fact ept_misconfig_inspect_spte() was added in order to track down 
this bug, so it will probably be removed in the future.


--
error compiling committee.c: too many arguments to function

--
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: KVM: VMX: flush TLB with INVEPT on cpu migration

2009-10-20 Thread Max Laier
On Friday 02 October 2009 00:16:58 you wrote:
 It is possible that stale EPTP-tagged mappings are used, if a
 vcpu migrates to a different pcpu.
 
 Set KVM_REQ_TLB_FLUSH in vmx_vcpu_load, when switching pcpus, which
 will invalidate both VPID and EPT mappings on the next vm-entry.

Thank you - I was at the brink of a nervous break-down before discovering 
this.  Maybe it would help for the future to add a comment to 
ept_misconfig_inspect_spte that explains that this might be caused by out of 
sync tlbs, too (esp. when it doesn't show an apparent cause of the misconfig)

 Signed-off-by: Marcelo Tosatti mtosa...@redhat.com
 
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
 index e86f1a6..97f4265 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -708,7 +708,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int
  cpu) if (vcpu-cpu != cpu) {
   vcpu_clear(vmx);
   kvm_migrate_timers(vcpu);
 - vpid_sync_vcpu_all(vmx);
 + set_bit(KVM_REQ_TLB_FLUSH, vcpu-requests);
   local_irq_disable();
   list_add(vmx-local_vcpus_link,
per_cpu(vcpus_on_cpu, cpu));
 --
 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
 
 
 !DSPAM:4ac52dbb832371894110002!
 

-- 
/\  Best regards,  | mla...@freebsd.org
\ /  Max Laier  | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mla...@efnet
/ \  ASCII Ribbon Campaign  | Against HTML Mail and News
--
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: KVM: VMX: flush TLB with INVEPT on cpu migration

2009-10-02 Thread Ram Pai

On Thu, 2009-10-01 at 19:16 -0300, Marcelo Tosatti wrote:
 It is possible that stale EPTP-tagged mappings are used, if a 
 vcpu migrates to a different pcpu.
 
 Set KVM_REQ_TLB_FLUSH in vmx_vcpu_load, when switching pcpus, which
 will invalidate both VPID and EPT mappings on the next vm-entry.
 
 Signed-off-by: Marcelo Tosatti mtosa...@redhat.com
 
 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
 index e86f1a6..97f4265 100644
 --- a/arch/x86/kvm/vmx.c
 +++ b/arch/x86/kvm/vmx.c
 @@ -708,7 +708,7 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
   if (vcpu-cpu != cpu) {
   vcpu_clear(vmx);
   kvm_migrate_timers(vcpu);
 - vpid_sync_vcpu_all(vmx);
 + set_bit(KVM_REQ_TLB_FLUSH, vcpu-requests);
   local_irq_disable();
   list_add(vmx-local_vcpus_link,
per_cpu(vcpus_on_cpu, cpu));
 --

This patch fixes my ept misconfig problem seen very so often while
installing sles11 guest.

thanks,
RP

 

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