[PATCH RFC 0/7] KVM: nVMX: enlightened VMCS initial implementation

Vitaly Kuznetsov
2017-12-18T17:17:56Z

The original author of these patches does no longer work at Red Hat, I
agreed to take this over and send upstream. Here is his original
description:

"Makes KVM implement the enlightened VMCS feature per Hyper-V TLFS 5.0b.
I've measured about %5 improvement in cost of a nested VM exit (Hyper-V
enabled Windows Server 2016 nested in KVM)."

This is just an initial implementation. By leveraging clean fields mask
we can further improve performance. I'm also interested in implementing
the other part of the feature: consuming enlightened VMCS when KVM is
running on top of Hyper-V.

Ladi Prosek (7):
KVM: x86: rename HV_X64_MSR_APIC_ASSIST_PAGE to
HV_X64_MSR_VP_ASSIST_PAGE
KVM: nVMX: modify vmcs12 fields to match Hyper-V enlightened VMCS
KVM: nVMX: add I/O exit ECX, ESI, EDI, EIP vmcs12 fields
KVM: hyperv: define VP assist page structure and add helpers
KVM: nVMX: add KVM_CAP_HYPERV_ENLIGHTENED_VMCS capability
KVM: nVMX: add enlightened VMCS state
KVM: nVMX: implement enlightened VMPTRLD

arch/x86/include/asm/kvm_host.h | 3 +
arch/x86/include/asm/vmx.h | 4 +
arch/x86/include/uapi/asm/hyperv.h | 20 +-
arch/x86/kvm/hyperv.c | 31 ++-
arch/x86/kvm/hyperv.h | 4 +
arch/x86/kvm/lapic.c | 4 +-
arch/x86/kvm/lapic.h | 4 +-
arch/x86/kvm/svm.c | 9 +
arch/x86/kvm/vmx.c | 467 ++++++++++++++++++++++++++-----------
arch/x86/kvm/x86.c | 19 +-
include/uapi/linux/kvm.h | 1 +
11 files changed, 407 insertions(+), 159 deletions(-)

--
2.14.3