[PATCH v2 0/3] SEV-ES TSC_AUX virtualization fix and optimization

From: Tom Lendacky
Date: Fri Sep 15 2023 - 16:58:01 EST


This patch series provides fixes to the TSC_AUX virtualization support
and an optimization to reduce the number of WRMSRs to TSC_AUX when
it is virtualized.

---

Changes since v1:
- Move TSC_AUX virtualization support out of init_vmcb_after_set_cpuid()
path and into the vcpu_after_set_cpuid() path
- Add an additional patch to properly set or clear intercepts based
on TSC_AUX virtualization requirements
- Simplify the TSC_AUX virtualization optimization to set the host save
area TSC_AUX value once during svm_hardware_enable().
- Since the TSC_AUX virtualization can't be disabled for an SEV-ES guest,
eliminate the "v_tsc_aux" flag and check against the host feature and
type of guest, directly.

Patches based on https://git.kernel.org/pub/scm/virt/kvm/kvm.git master
and commit:
7c7cce2cf7ee ("Merge tag 'kvmarm-fixes-6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD")

Tom Lendacky (3):
KVM: SVM: Fix TSC_AUX virtualization setup
KVM: SVM: Fix TSC_AUX virtualization intercept update logic
KVM: SVM: Do not use user return MSR support for virtualized TSC_AUX

arch/x86/kvm/svm/sev.c | 34 +++++++++++++++++++++++++--------
arch/x86/kvm/svm/svm.c | 43 ++++++++++++++++++++++++++++++++++--------
arch/x86/kvm/svm/svm.h | 1 +
3 files changed, 62 insertions(+), 16 deletions(-)

--
2.41.0