Unify AMD's and Intel's approach for supporting XSAVES. To do this change Intel's approach from using the MSR-load areas to writing the guest/host values to IA32_XSS on a VM-enter/VM-exit. Switching to this strategy allows for a common approach between both AMD and Intel. Additionally, define svm_xsaves_supported() based on AMD's feedback, and add IA32_XSS to the emulated_msrs list, in preparation for the day when the guest IA32_XSS may contain a non-zero value. This change sets up IA32_XSS to be a non-zero value in the future, which may happen sooner than later with support for guest CET feature being added. v1 -> v2: - Add the flag xsaves_enabled to kvm_vcpu_arch to track when XSAVES is enabled in the guest, whether or not XSAVES is enumerated in the guest CPUID. - Remove code that sets the X86_FEATURE_XSAVES bit in the guest CPUID which was added in patch "Enumerate XSAVES in guest CPUID when it is available to the guest". As a result we no longer need that patch. - Added a comment to kvm_set_msr_common to describe how to save/restore PT MSRS without using XSAVES/XRSTORS. - Added more comments to the "Add support for XSAVES on AMD" patch. - Replaced vcpu_set_msr_expect_result() with _vcpu_set_msr() in the test library. Aaron Lewis (5): KVM: VMX: Remove unneeded check for X86_FEATURE_XSAVE KVM: VMX: Use wrmsr for switching between guest and host IA32_XSS kvm: svm: Add support for XSAVES on AMD kvm: x86: Add IA32_XSS to the emulated_msrs list kvm: tests: Add test to verify MSR_IA32_XSS arch/x86/include/asm/kvm_host.h | 1 + arch/x86/kvm/svm.c | 19 +++-- arch/x86/kvm/vmx/vmx.c | 46 ++++-------- arch/x86/kvm/x86.c | 46 ++++++++++-- arch/x86/kvm/x86.h | 4 +- tools/testing/selftests/kvm/.gitignore | 1 + tools/testing/selftests/kvm/Makefile | 1 + .../selftests/kvm/include/x86_64/processor.h | 7 +- .../selftests/kvm/lib/x86_64/processor.c | 72 ++++++++++++++++--- .../selftests/kvm/x86_64/xss_msr_test.c | 70 ++++++++++++++++++ 10 files changed, 210 insertions(+), 57 deletions(-) create mode 100644 tools/testing/selftests/kvm/x86_64/xss_msr_test.c -- 2.23.0.700.g56cf767bdb-goog