KVM: X86: Zap the invalid list after remote tlb flushing
authorLai Jiangshan <laijs@linux.alibaba.com>
Sat, 18 Sep 2021 00:56:33 +0000 (08:56 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 30 Sep 2021 08:27:09 +0000 (04:27 -0400)
In mmu_sync_children(), it can zap the invalid list after remote tlb flushing.
Emptifying the invalid list ASAP might help reduce a remote tlb flushing
in some cases.

Signed-off-by: Lai Jiangshan <laijs@linux.alibaba.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210918005636.3675-8-jiangshanlai@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c

index 34de5a8ea7dcc87d628ffee729c24b7d5f9a8619..ccfcdc02d2140cb97d544883bdc6387fb10fc690 100644 (file)
@@ -2035,7 +2035,7 @@ static int mmu_sync_children(struct kvm_vcpu *vcpu,
                        protected |= rmap_write_protect(vcpu, sp->gfn);
 
                if (protected) {
-                       kvm_flush_remote_tlbs(vcpu->kvm);
+                       kvm_mmu_remote_flush_or_zap(vcpu->kvm, &invalid_list, true);
                        flush = false;
                }