KVM: MMU: remove unnecessary remote tlb flush
PATCH 1/3 KVM: MMU: remove unnecessary remote tlb flush
This remote tlb flush is no necessary since we have synced while sp is zapped
Signed-off-by Xiao Guangrong <[email protected]>
--- arch/x86/kvm/mmu.c | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-)
arch/x86/kvm/mmu.c +0 -2
@@ -3038,8 +3038,6 @@ restart:kvm_mmu_commit_zap_page (kvm, &invalid_list);spin_unlock (&kvm->mmu_lock); - -kvm_flush_remote_tlbs (kvm); } static int kvm_mmu_remove_some_alloc_mmu_pages(struct kvm *kvm,
Signature · 1 line
1.6.1.2
PATCH 2/3 KVM: MMU: using wrapper function to flush local tlb
Using kvm_mmu_flush_tlb() function instead of calling kvm_x86_ops->tlb_flush(vcpu) directly
Signed-off-by Xiao Guangrong <[email protected]>
--- arch/x86/kvm/mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kvm/mmu.c +1 -1
@@ -1982,7 +1982,7 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *sptep, reset_host_protection)) {if (write_fault) *ptwrite =1 ; - kvm_x86_ops->tlb_flush (vcpu); +kvm_mmu_flush_tlb (vcpu); }pgprintk ("%s: setting spte %llx\n" , __func__, *sptep);
Signature · 1 line
1.6.1.2
PATCH 3/3 KVM: MMU: delay local tlb flush
In reply to Xiao Guangrongdelay local tlb flush until enter guest moden, it can reduce vpid flush frequency and reduce remote tlb flush IPI(if KVM_REQ_TLB_FLUSH bit is already set, IPI is not sent)
Signed-off-by Xiao Guangrong <[email protected]>
--- arch/x86/kvm/mmu.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kvm/mmu.c +1 -1
@@ -2362,7 +2362,7 @@ static int nonpaging_init_context(struct kvm_vcpu *vcpu)void kvm_mmu_flush_tlb (struct kvm_vcpu *vcpu) { ++vcpu->stat.tlb_flush; - kvm_x86_ops->tlb_flush (vcpu); +set_bit (KVM_REQ_TLB_FLUSH , &vcpu->requests); }static void paging_new_cr3 (struct kvm_vcpu *vcpu)
Signature · 1 line
1.6.1.2
Avi Kivity
AppliedRe: [PATCH 3/3] KVM: MMU: delay local tlb flush
Quoted 4 lines · Xiao Guangrong
delay local tlb flush until enter guest moden, it can reduce vpid flush frequency and reduce remote tlb flush
IPI(if KVM_REQ_TLB_FLUSH bit is already set, IPI is not sent)
Applied all, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function