[PATCH v3 0/3] Add KVM support for Intel local MCE

From: Haozhong Zhang
Date: Wed Jun 22 2016 - 03:00:59 EST


Changes in v3:
* Make guest MSR_IA32_FEATURE_CONTROL always available (Paolo
Bonzini) and remove the nested vmx check in the 'get' case in patch
1 (Borislav Petkov).
* Always mark the locked bit of MSR_IA32_FEATURE_CONTROL
valid. (Paolo Bonzini)
* Remove the now unnecessary macros to set
msr_ia32_feature_control_valid_bits. (Paolo Bonzini)
* Remove the unnecessary check of MCG_LMCE_P in v2
vmx_mcg_ext_ctl_msr_present() and inline the remaining part. (Paolo
Bonzini)

Changes in v2:
* v1 Patch 1 becomes v2 Patch 3.
* Fix COB chain in Patch 3. (Boris Petkov)
* (Patch 1) Move msr_ia32_feature_control from nested_vmx to
vcpu_vmx, because it does not depend only on nested after this
patch series. (Radim KrÄmÃÅ)
* (Patch 2) Add a valid bitmask for MSR_IA32_FEATURE_CONTROL to allow
checking individual bits of MSR_IA32_FEATURE_CONTROL according to
enabled features. (Radim KrÄmÃÅ)
* Move the common check in handling MSR_IA32_MCG_EXT_CTL to function
vmx_mcg_ext_ctl_msr_present. (Radim KrÄmÃÅ)

Changes in v1:
* Change macro KVM_MCE_CAP_SUPPORTED to variable kvm_mce_cap_supported.
* Include LMCE capability in kvm_mce_cap_supported only on Intel CPU,
i.e. LMCE can be enabled only on Intel CPU.
* Check if LMCE is enabled in guest MSR_IA32_FEATURE_CONTROL when
handling guest access to MSR_IA32_MCG_EXT_CTL.

This patch series along with the corresponding QEMU patch series (sent
via another email with title "[PATCH v5 0/4] Add QEMU support for
Intel local MCE") enables Intel local MCE feature for guest. This KVM
patch handles guest access to LMCE-related MSR (MSR_IA32_MCG_EXT_CTL
and MSR_IA32_FEATURE_CONTROL).

Ashok Raj (1):
KVM: VMX: enable guest access to LMCE related MSRs

Haozhong Zhang (2):
KVM: VMX: move msr_ia32_feature_control to vcpu_vmx
KVM: VMX: validate individual bits of guest MSR_IA32_FEATURE_CONTROL

arch/x86/include/asm/kvm_host.h | 5 +++
arch/x86/kvm/vmx.c | 67 ++++++++++++++++++++++++++++++++++++-----
arch/x86/kvm/x86.c | 15 +++++----
3 files changed, 73 insertions(+), 14 deletions(-)

--
2.9.0