[PATCH 0/6] KVM: x86: Unhost the *_CMD MSR mess

Sean Christopherson
2023-03-22T01:15:52Z

Revert the FLUSH_L1D enabling, which has multiple fatal bugs, clean up
the existing PRED_CMD handling, and reintroduce FLUSH_L1D virtualization
without inheriting the mistakes made by PRED_CMD.

The last patch hardens SVM against one of the bugs introduced in the
FLUSH_L1D enabling.

I'll post KUT patches tomorrow. I have the tests written (and they found
bugs in my code, :shocked-pikachu:), just need to write the changelogs.
Wanted to get this out sooner than later as I'm guessing I'm not the only
one whose VMs won't boot on Intel CPUs...

Sean Christopherson (6):
KVM: x86: Revert MSR_IA32_FLUSH_CMD.FLUSH_L1D enabling
KVM: VMX: Passthrough MSR_IA32_PRED_CMD based purely on host+guest
CPUID
KVM: SVM: Passthrough MSR_IA32_PRED_CMD based purely on host+guest
CPUID
KVM: x86: Move MSR_IA32_PRED_CMD WRMSR emulation to common code
KVM: x86: Virtualize FLUSH_L1D and passthrough MSR_IA32_FLUSH_CMD
KVM: SVM: Return the local "r" variable from svm_set_msr()

arch/x86/kvm/svm/svm.c | 51 +++++++++++-----------------------------
arch/x86/kvm/vmx/vmx.c | 53 +++++++-----------------------------------
arch/x86/kvm/vmx/vmx.h | 2 +-
arch/x86/kvm/x86.c | 23 ++++++++++++++++++
4 files changed, 46 insertions(+), 83 deletions(-)

base-commit: d8708b80fa0e6e21bc0c9e7276ad0bccef73b6e7
--
2.40.0.rc2.332.ga46443480c-goog