diff options
author | Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp> | 2015-12-18 18:54:49 +0900 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-12-18 19:07:45 +0100 |
commit | 774926641d1968a4839da3a6ac79d914742aac2f (patch) | |
tree | b475eae976cf143389bf36b6fe541fbc816ac9f9 | |
parent | 481d2bcc8454a44811db2bb68ac216fc6c5a23db (diff) | |
download | linux-774926641d1968a4839da3a6ac79d914742aac2f.tar.gz linux-774926641d1968a4839da3a6ac79d914742aac2f.tar.bz2 linux-774926641d1968a4839da3a6ac79d914742aac2f.zip |
KVM: x86: MMU: Use clear_page() instead of init_shadow_page_table()
Not just in order to clean up the code, but to make it faster by using
enhanced instructions: the initialization became 20-30% faster on our
testing machine.
Signed-off-by: Takuya Yoshikawa <yoshikawa_takuya_b1@lab.ntt.co.jp>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | arch/x86/kvm/mmu.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index a1a3d1907fdc..7f5a82bb61e9 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -2041,14 +2041,6 @@ static void mmu_sync_children(struct kvm_vcpu *vcpu, } } -static void init_shadow_page_table(struct kvm_mmu_page *sp) -{ - int i; - - for (i = 0; i < PT64_ENT_PER_PAGE; ++i) - sp->spt[i] = 0ull; -} - static void __clear_sp_write_flooding_count(struct kvm_mmu_page *sp) { sp->write_flooding_count = 0; @@ -2128,7 +2120,7 @@ static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu, account_shadowed(vcpu->kvm, sp); } sp->mmu_valid_gen = vcpu->kvm->arch.mmu_valid_gen; - init_shadow_page_table(sp); + clear_page(sp->spt); trace_kvm_mmu_get_page(sp, true); return sp; } |