Newer AMD processors have a feature to virtualize the use of the SPEC_CTRL MSR on the guest. The series adds the feature support and enables the feature on SVM. --- v4: 1. Taken care of comments from Sean Christopherson. a. Updated svm_set_msr/svm_get_msr to read/write the spec_ctrl value directly from save spec_ctrl. b. Disabled the msr_interception in init_vmcb when V_SPEC_CTRL is present. c. Added the save restore for nested vm. Also tested to make sure the nested SPEC_CTRL settings properly saved and restored between L2 and L1 guests. 2. Added the kvm-unit-tests to verify that. Sent those patches separately. v3: 1. Taken care of recent changes in vmcb_save_area. Needed to adjust the save area spec_ctrl definition. 2. Taken care of few comments from Tom. a. Initialised the save area spec_ctrl in case of SEV-ES. b. Removed the changes in svm_get_msr/svm_set_msr. c. Reverted the changes to disable the msr interception to avoid compatibility issue. 3. Updated the patch #1 with Acked-by from Boris. v2: NOTE: This is not final yet. Sending out the patches to make sure I captured all the comments correctly. 1. Most of the changes are related to Jim and Sean's feedback. 2. Improved the description of patch #2. 3. Updated the vmcb save area's guest spec_ctrl value(offset 0x2E0) properly. Initialized during init_vmcb and svm_set_msr and returned the value from save area for svm_get_msr. 4. As Jim commented, transferred the value into the VMCB prior to VMRUN and out of the VMCB after #VMEXIT. 5. Added kvm-unit-test to detect the SPEC CTRL feature. https://lore.kernel.org/kvm/160865324865.19910.5159218511905134908.stgit@bmoger-ubuntu/ 6. Sean mantioned of renaming MSR_AMD64_VIRT_SPEC_CTRL. But, it might create even more confusion, so dropped the idea for now. v3: https://lore.kernel.org/kvm/161073115461.13848.18035972823733547803.stgit@bmoger-ubuntu/ v2: https://lore.kernel.org/kvm/160867624053.3471.7106539070175910424.stgit@bmoger-ubuntu/ v1: https://lore.kernel.org/kvm/160738054169.28590.5171339079028237631.stgit@bmoger-ubuntu/ Babu Moger (2): x86/cpufeatures: Add the Virtual SPEC_CTRL feature KVM: SVM: Add support for Virtual SPEC_CTRL arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/svm.h | 4 +++- arch/x86/kvm/svm/nested.c | 2 ++ arch/x86/kvm/svm/svm.c | 27 ++++++++++++++++++++++----- 4 files changed, 28 insertions(+), 6 deletions(-) --