Skip to content

RFC Enabling Extended Page Table(EPT) for VMX

Yang, Sheng kvm 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest7 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7KVM: Add EPT support in kvm_archinclude/asm-x86/kvm_host.h+30 -00 replies
2/7KVM: Common interface of TLP and feature detection for EPTarch/x86/kvm/svm.c arch/x86/kvm/vmx.c arch/x86/kvm/vmx.h +1 more+205 -50 replies
3/7KVM: MMU: Add Two Level Paging (TLP)arch/x86/kvm/mmu.c+138 -40 replies
4/7KVM: Export necessary function to modules()arch/x86/kvm/x86.c include/asm-x86/kvm_host.h include/linux/kvm_host.h +1 more+7 -20 replies
5/7KVM: VMX: Enable EPT featurearch/x86/kvm/vmx.c+362 -60 replies
6/7KVM: VMX: Add swap support for EPTarch/x86/kvm/vmx.c include/asm-x86/kvm_host.h+94 -00 replies
7/7kvm: qemu: Enable EPT support for real modeqemu/hw/pc.c+14 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC][PATCH 0/7]Enabling Extended Page Table(EPT) for VMX

Hi, Avi

Here is the patchset which enabling EPT for VMX. We tested it with 32e host, and it works well on Linux, Windows, also SMP with kernel build, though the X Window and windows need a patch for qemu to solve the dirty bitmap problem.

The format of EPT entry is different from the page table, so we would create EPT page table separately.

The patchset would support swap along with the mmu_notifier. But the patch of mmu_notifier is not stable in our test (with shadow), so we didn't test it with EPT. But the interface and the function has been in the patch, we can add the support easily when mmu_notifier is ready.

Any comments are welcome!

Here is the diffstat for kernel space:

 arch/x86/kvm/mmu.c         |   71 ++++++-
 arch/x86/kvm/svm.c         |    6 +
 arch/x86/kvm/vmx.c         |  489 
+++++++++++++++++++++++++++++++++++++++++++-
 arch/x86/kvm/vmx.h         |   26 +++
 arch/x86/kvm/x86.c         |    1 +
 include/asm-x86/kvm_host.h |   21 ++
 include/linux/kvm_host.h   |    1 +
 virt/kvm/kvm_main.c        |    3 +-
 8 files changed, 606 insertions(+), 12 deletions(-)

Here for userspace:

 qemu/hw/pc.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
Signature · 7 lines
Thanks
Yang, Sheng

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/