The first three patches fix a issue for the nested VMX controls MSRs. The issue happens when I use QEMU to run nested VM. The VM_{ENTRY, EXIT}_LOAD_IA32_PERF_GLOBAL_CTRL and VM_{ENTRY_LOAD, EXIT_CLEAR}_BNDCFGS in L1 MSR_IA32_VMX_TRUE_{ENTRY, EXIT}_CTLS MSR are always cleared regardless of whether it supports in L1. This is because QEMU gets the nested VMX MSRs from vmcs_config.nested_vmx_msrs which doesn't expose these two fields. Then, when QEMU initializes the features MSRs after SET_CPUID, it will override the nested VMX MSR values which has been updated according to guest CPUID during SET_CPUID. This patch series just expose the missing fields in nested VMX {ENTRY, EXIT} controls MSR and adds the support to update nested VMX MSRs after set_vmx_msrs. The last two patches are a minor fix and cleanup. Chenyi Qiang (5): KVM: nVMX: Fix VMX controls MSRs setup when nested VMX enabled KVM: nVMX: Verify the VMX controls MSRs with the global capability when setting VMX MSRs KVM: nVMX: Update VMX controls MSR according to guest CPUID after setting VMX MSRs KVM: nVMX: Fix the update value of nested load IA32_PERF_GLOBAL_CTRL control KVM: nVMX: Simplify the initialization of nested_vmx_msrs arch/x86/kvm/vmx/nested.c | 79 +++++++++++++++++++++++++++------------ arch/x86/kvm/vmx/vmx.c | 9 +++-- 2 files changed, 62 insertions(+), 26 deletions(-) -- 2.17.1