From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH] KVM: nEPT: reset PDPTR register cache on nested vmentry emulation Date: Thu, 12 Sep 2013 18:33:16 +0200 Message-ID: <5231ECCC.4050401@redhat.com> References: <20130902122527.GS22899@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, chao.zhou@intel.com To: Gleb Natapov Return-path: Received: from mail-qe0-f42.google.com ([209.85.128.42]:43309 "EHLO mail-qe0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754492Ab3ILQdJ (ORCPT ); Thu, 12 Sep 2013 12:33:09 -0400 Received: by mail-qe0-f42.google.com with SMTP id 1so35002qec.15 for ; Thu, 12 Sep 2013 09:33:08 -0700 (PDT) In-Reply-To: <20130902122527.GS22899@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 02/09/2013 14:25, Gleb Natapov ha scritto: > After nested vmentry stale cache can be used to reload L2 PDPTR pointers > which will cause L2 guest to fail. Fix it by invalidating cache on nested > vmentry emulation. > > https://bugzilla.kernel.org/show_bug.cgi?id=60830 > > Signed-off-by: Gleb Natapov > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 57b4e12..6f69aac 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -7765,6 +7765,10 @@ static void prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12) > vmcs_write64(GUEST_PDPTR1, vmcs12->guest_pdptr1); > vmcs_write64(GUEST_PDPTR2, vmcs12->guest_pdptr2); > vmcs_write64(GUEST_PDPTR3, vmcs12->guest_pdptr3); > + __clear_bit(VCPU_EXREG_PDPTR, > + (unsigned long *)&vcpu->arch.regs_avail); > + __clear_bit(VCPU_EXREG_PDPTR, > + (unsigned long *)&vcpu->arch.regs_dirty); > } > > kvm_register_write(vcpu, VCPU_REGS_RSP, vmcs12->guest_rsp); > -- > Gleb. > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Applied to kvm/queue for 3.12, thanks. Paolo