Re: [PATCH 0/18][RFC] Nested Paging support for Nested SVM (aka NPT-Virtualization)

From: Jan Kiszka
Date: Wed Mar 03 2010 - 18:11:02 EST


Joerg Roedel wrote:
> Hi,
>
> here are the patches that implement nested paging support for nested
> svm. They are somewhat intrusive to the soft-mmu so I post them as RFC
> in the first round to get feedback about the general direction of the
> changes. Nevertheless I am proud to report that with these patches the
> famous kernel-compile benchmark runs only 4% slower in the l2 guest as
> in the l1 guest when l2 is single-processor. With SMP guests the

Wow!

Jan

> situation is very different. The more vcpus the guest has the more is
> the performance drop from l1 to l2.
> Anyway, this post is to get feedback about the overall concept of these
> patches. Please review and give feedback :-)
>
> Thanks,
>
> Joerg
>
> Diffstat:
>
> arch/x86/include/asm/kvm_host.h | 21 ++++++
> arch/x86/kvm/mmu.c | 152 ++++++++++++++++++++++++++++++---------
> arch/x86/kvm/mmu.h | 2 +
> arch/x86/kvm/paging_tmpl.h | 81 ++++++++++++++++++---
> arch/x86/kvm/svm.c | 126 +++++++++++++++++++++++++++-----
> arch/x86/kvm/vmx.c | 9 +++
> arch/x86/kvm/x86.c | 19 +++++-
> include/linux/kvm.h | 1 +
> include/linux/kvm_host.h | 5 ++
> 9 files changed, 354 insertions(+), 62 deletions(-)
>
> Shortlog:
>
> Joerg Roedel (18):
> KVM: MMU: Check for root_level instead of long mode
> KVM: MMU: Make tdp_enabled a mmu-context parameter
> KVM: MMU: Make set_cr3 a function pointer in kvm_mmu
> KVM: X86: Introduce a tdp_set_cr3 function
> KVM: MMU: Introduce get_cr3 function pointer
> KVM: MMU: Introduce inject_page_fault function pointer
> KVM: SVM: Implement MMU helper functions for Nested Nested Paging
> KVM: MMU: Change init_kvm_softmmu to take a context as parameter
> KVM: MMU: Let is_rsvd_bits_set take mmu context instead of vcpu
> KVM: MMU: Introduce generic walk_addr function
> KVM: MMU: Add infrastructure for two-level page walker
> KVM: MMU: Implement nested gva_to_gpa functions
> KVM: MMU: Introduce Nested MMU context
> KVM: SVM: Initialize Nested Nested MMU context on VMRUN
> KVM: MMU: Propagate the right fault back to the guest after gva_to_gpa
> KVM: X86: Add callback to let modules decide over some supported cpuid bits
> KVM: SVM: Report Nested Paging support to userspace
> KVM: X86: Add KVM_CAP_SVM_CPUID_FIXED
>
>

Attachment: signature.asc
Description: OpenPGP digital signature