Messages in this thread | | | Date | Wed, 15 Dec 2021 18:10:41 +0100 | Subject | Re: [PATCH 11/15] KVM: VMX: Update vmcs.GUEST_CR3 only when the guest CR3 is dirty | From | Paolo Bonzini <> |
| |
On 12/15/21 17:45, Sean Christopherson wrote: > The better place for this is the path in vmx_set_cr0() that handles EPT + !URG. > I believe nested_vmx_restore_host_state(), which is used to restore host state if > hardware detects a VM-Fail that KVM misses on nested VM-Enter, is also missing a > call to mark CR3 dirty. > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > index 2f6f465e575f..b0c3eb80f5d5 100644 > --- a/arch/x86/kvm/vmx/nested.c > +++ b/arch/x86/kvm/vmx/nested.c > @@ -4426,7 +4426,7 @@ static void nested_vmx_restore_host_state(struct kvm_vcpu *vcpu) > > nested_ept_uninit_mmu_context(vcpu); > vcpu->arch.cr3 = vmcs_readl(GUEST_CR3); > - kvm_register_mark_available(vcpu, VCPU_EXREG_CR3); > + kvm_register_mark_dirty(vcpu, VCPU_EXREG_CR3); > > /* > * Use ept_save_pdptrs(vcpu) to load the MMU's cached PDPTRs
Yes, I agree. Jiangshan, please send all your fixes tomorrow, or tell me if you prefer that I push the reverts to kvm/next.
Paolo
| |