kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/18][RFC] Nested Paging support for Nested SVM (aka NPT-Virtualization)
@ 2010-03-03 19:12 Joerg Roedel
  2010-03-03 19:12 ` [PATCH 01/18] KVM: MMU: Check for root_level instead of long mode Joerg Roedel
                   ` (22 more replies)
  0 siblings, 23 replies; 49+ messages in thread
From: Joerg Roedel @ 2010-03-03 19:12 UTC (permalink / raw)
  To: Avi Kivity, Marcelo Tosatti; +Cc: Alexander Graf, kvm, linux-kernel

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
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



^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2010-03-15 12:52 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-03 19:12 [PATCH 0/18][RFC] Nested Paging support for Nested SVM (aka NPT-Virtualization) Joerg Roedel
2010-03-03 19:12 ` [PATCH 01/18] KVM: MMU: Check for root_level instead of long mode Joerg Roedel
2010-03-03 19:12 ` [PATCH 02/18] KVM: MMU: Make tdp_enabled a mmu-context parameter Joerg Roedel
2010-03-08  9:17   ` Avi Kivity
2010-03-10 14:44     ` Joerg Roedel
2010-03-10 14:53       ` Avi Kivity
2010-03-10 15:26         ` Joerg Roedel
2010-03-11  6:47           ` Avi Kivity
2010-03-11 10:33             ` Joerg Roedel
2010-03-03 19:12 ` [PATCH 03/18] KVM: MMU: Make set_cr3 a function pointer in kvm_mmu Joerg Roedel
2010-03-03 19:12 ` [PATCH 04/18] KVM: X86: Introduce a tdp_set_cr3 function Joerg Roedel
2010-03-03 19:12 ` [PATCH 05/18] KVM: MMU: Introduce get_cr3 function pointer Joerg Roedel
2010-03-03 19:12 ` [PATCH 06/18] KVM: MMU: Introduce inject_page_fault " Joerg Roedel
2010-03-03 19:12 ` [PATCH 07/18] KVM: SVM: Implement MMU helper functions for Nested Nested Paging Joerg Roedel
2010-03-03 19:12 ` [PATCH 08/18] KVM: MMU: Change init_kvm_softmmu to take a context as parameter Joerg Roedel
2010-03-03 19:12 ` [PATCH 09/18] KVM: MMU: Let is_rsvd_bits_set take mmu context instead of vcpu Joerg Roedel
2010-03-03 19:12 ` [PATCH 10/18] KVM: MMU: Introduce generic walk_addr function Joerg Roedel
2010-03-03 19:12 ` [PATCH 11/18] KVM: MMU: Add infrastructure for two-level page walker Joerg Roedel
2010-03-08  9:37   ` Avi Kivity
2010-03-10 14:46     ` Joerg Roedel
2010-03-03 19:12 ` [PATCH 12/18] KVM: MMU: Implement nested gva_to_gpa functions Joerg Roedel
2010-03-03 19:12 ` [PATCH 13/18] KVM: MMU: Introduce Nested MMU context Joerg Roedel
2010-03-03 19:12 ` [PATCH 14/18] KVM: SVM: Initialize Nested Nested MMU context on VMRUN Joerg Roedel
2010-03-03 19:12 ` [PATCH 15/18] KVM: MMU: Propagate the right fault back to the guest after gva_to_gpa Joerg Roedel
2010-03-15  4:30   ` Daniel K.
2010-03-15 12:52     ` Joerg Roedel
2010-03-15  7:36   ` Avi Kivity
2010-03-15  9:06     ` Joerg Roedel
2010-03-15  9:23       ` Avi Kivity
2010-03-15  9:41         ` Joerg Roedel
2010-03-03 19:12 ` [PATCH 16/18] KVM: X86: Add callback to let modules decide over some supported cpuid bits Joerg Roedel
2010-03-03 19:12 ` [PATCH 17/18] KVM: SVM: Report Nested Paging support to userspace Joerg Roedel
2010-03-03 23:37   ` Alexander Graf
2010-03-04 11:27     ` Joerg Roedel
2010-03-03 19:12 ` [PATCH 18/18] KVM: X86: Add KVM_CAP_SVM_CPUID_FIXED Joerg Roedel
2010-03-08  9:39   ` Avi Kivity
2010-03-10 14:46     ` Joerg Roedel
2010-03-03 23:10 ` [PATCH 0/18][RFC] Nested Paging support for Nested SVM (aka NPT-Virtualization) Jan Kiszka
2010-03-03 23:44 ` Alexander Graf
2010-03-04 11:29   ` Joerg Roedel
2010-03-04  0:35 ` Anthony Liguori
2010-03-04 14:42 ` Marcelo Tosatti
2010-03-04 15:58   ` Joerg Roedel
2010-03-11 20:58     ` Marcelo Tosatti
2010-03-12  7:36       ` Avi Kivity
2010-03-15  6:27         ` Marcelo Tosatti
2010-03-15  7:34           ` Avi Kivity
2010-03-12  7:41     ` Avi Kivity
2010-03-08  9:41 ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).