summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiao Guangrong2013-05-31 02:36:26 +0200
committerGleb Natapov2013-06-05 11:33:04 +0200
commit7f52af7412275c0d23becfc325331ec8b5ff2458 (patch)
treeb5a1bfcf2d67856f29c4ba381ac554e35d0a0ed8
parentKVM: MMU: add tracepoint for kvm_mmu_invalidate_all_pages (diff)
downloadkernel-qcow2-linux-7f52af7412275c0d23becfc325331ec8b5ff2458.tar.gz
kernel-qcow2-linux-7f52af7412275c0d23becfc325331ec8b5ff2458.tar.xz
kernel-qcow2-linux-7f52af7412275c0d23becfc325331ec8b5ff2458.zip
KVM: MMU: do not reuse the obsolete page
The obsolete page will be zapped soon, do not reuse it to reduce future page fault Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
-rw-r--r--arch/x86/kvm/mmu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 3fd060af5394..0880b9b425d7 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1875,6 +1875,9 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,
role.quadrant = quadrant;
}
for_each_gfn_sp(vcpu->kvm, sp, gfn) {
+ if (is_obsolete_sp(vcpu->kvm, sp))
+ continue;
+
if (!need_sync && sp->unsync)
need_sync = true;