On 05/13/2018 03:33 PM, Liran Alon wrote: >> @@ -5154,11 +5180,18 @@ void kvm_mmu_invpcid_gva(struct kvm_vcpu >> *vcpu, gva_t gva, unsigned long pcid) >> kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); >> } >> >> + if (VALID_PAGE(mmu->prev_root_hpa) && >> + pcid == kvm_get_pcid(vcpu, mmu->prev_cr3)) { >> + mmu->invlpg(vcpu, gva, mmu->prev_root_hpa); >> + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); >> + } >> + > > I think that KVM_REQ_TLB_FLUSH was needed for prev PCID as part of patch 8. > This will solve the issue I mentioned there of breaking INVPCID handling. > Yes, you are right. I had refactored the patches a bit from the initial implementation and failed to notice that this flush was needed in the earlier patch (along with one for the SINGLE_CTXT case). Thank you for catching this. Thanks, Junaid