summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-05-29 14:56:28 +0300
committerAvi Kivity <avi@qumranet.com>2008-07-20 12:42:30 +0300
commit131d82791b628d4aeafd94ddc74a9b68f3d15a83 (patch)
treeedee39aaef0af651a6b5799fe71a81e180701320 /arch/x86/kvm
parentd761a501cf9cd4fa08ff35d252ff08b8c31ce677 (diff)
downloadop-kernel-dev-131d82791b628d4aeafd94ddc74a9b68f3d15a83.zip
op-kernel-dev-131d82791b628d4aeafd94ddc74a9b68f3d15a83.tar.gz
KVM: MMU: Avoid page prefetch on SVM
SVM cannot benefit from page prefetching since guest page fault bypass cannot by made to work there. Avoid accessing the guest page table in this case. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/mmu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 62741b7..5ebb278 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -850,7 +850,10 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu,
hlist_add_head(&sp->hash_link, bucket);
if (!metaphysical)
rmap_write_protect(vcpu->kvm, gfn);
- vcpu->arch.mmu.prefetch_page(vcpu, sp);
+ if (shadow_trap_nonpresent_pte != shadow_notrap_nonpresent_pte)
+ vcpu->arch.mmu.prefetch_page(vcpu, sp);
+ else
+ nonpaging_prefetch_page(vcpu, sp);
return sp;
}
OpenPOWER on IntegriCloud