On 06/13/2018 10:04 AM, Sean Christopherson wrote: >> @@ -4059,6 +4059,7 @@ static bool fast_cr3_switch(struct kvm_vcpu *vcpu, gpa_t new_cr3, >> >> kvm_make_request(KVM_REQ_LOAD_CR3, vcpu); >> kvm_make_request(KVM_REQ_MMU_SYNC, vcpu); >> + kvm_x86_ops->tlb_flush(vcpu, true); > Shouldn't this be "kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu)" instead > of an immediate TLB flush since we're delaying the load and sync until > vcpu_enter_guest()? > I had called tlb_flush() directly to avoid inflating the vcpu->stat.tlb_flush counter (which KVM_REQ_TLB_FLUSH increments), since the regular slow path doesn't increment it when setting CR3. Maybe it doesn't really matter? If so, then it is indeed better to use KVM_REQ_TLB_FLUSH. Thanks, Junaid