On 03/20/2018 02:17 PM, Sean Christopherson wrote:
A growing number of SVM and VMX specific variables are creeping into struct kvm_arch. This trend will likely accelarate as recent/upcoming security oriented features, e.g. AMD's SEV and Intel's SGX, require even more per-VM data. This series leverages KVM's option to define arch specific vm_alloc and vm_free functions so that SVM and VMX can wrap struct kvm with their own top-level structs, e.g. kvm_vmx and kvm_svm. SVM/VMX specific structs allow us to move SVM and VMX specific variables and struct definitions out of kvm_host.h (struct kvm_arch) and into their appropriate modules. The AMD changes are completely untested beyond compiling as I don't have the requesite hardware, testing cycles on AMD would be much appreciated!
I did a quick test on AMD hardware and it seems to be working fine. Patch 3/5 didn't apply cleanly on kvm/master but since the patch was touching VMX specific files hence I skipped it during my quick run.
~ Brijesh
Sean Christopherson (5): KVM: x86: define SVM/VMX specific kvm_arch_[alloc|free]_vm KVM: x86: move setting of ept_identity_map_addr to vmx.c KVM: VMX: add struct kvm_vmx to hold VMX specific KVM vars KVM: SVM: add struct kvm_svm to hold SVM specific KVM vars KVM: SVM: rename svm_vm_data_hash[_lock] to kvm_svm_hash[_lock] arch/x86/include/asm/kvm_host.h | 36 ++++----- arch/x86/kvm/svm.c | 166 +++++++++++++++++++++++++--------------- arch/x86/kvm/vmx.c | 60 ++++++++++++--- arch/x86/kvm/x86.c | 3 +- 4 files changed, 167 insertions(+), 98 deletions(-)