Skip to contentSkip to conversation

KVM: MMU: remove unnecessary remote tlb flush

PATCH Applied Xiao Guangrong 2 participants 4 messages Jun 8, 2010 – Jun 9, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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

---
 arch/x86/kvm/mmu.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)
arch/x86/kvm/mmu.c +0 -2
index 6b2c644..959c248 100644
@@ -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
#1 lore raw

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

---
 arch/x86/kvm/mmu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kvm/mmu.c +1 -1
index 959c248..7319098 100644
@@ -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
#2 lore raw

PATCH 3/3 KVM: MMU: delay local tlb flush

In reply to 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)

---
 arch/x86/kvm/mmu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/x86/kvm/mmu.c +1 -1
index 7319098..75ddaa1 100644
@@ -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
Applied
#3 lore raw

Re: [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