diff options
author | Avi Kivity <avi@qumranet.com> | 2008-05-29 14:56:28 +0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-07-20 12:42:30 +0300 |
commit | 131d82791b628d4aeafd94ddc74a9b68f3d15a83 (patch) | |
tree | edee39aaef0af651a6b5799fe71a81e180701320 | |
parent | d761a501cf9cd4fa08ff35d252ff08b8c31ce677 (diff) | |
download | linux-3.10-131d82791b628d4aeafd94ddc74a9b68f3d15a83.tar.gz linux-3.10-131d82791b628d4aeafd94ddc74a9b68f3d15a83.tar.bz2 linux-3.10-131d82791b628d4aeafd94ddc74a9b68f3d15a83.zip |
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>
-rw-r--r-- | arch/x86/kvm/mmu.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 62741b7c422..5ebb2788bd7 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; } |