Sean Christopherson <seanjc@xxxxxxxxxx> writes: > On Fri, Aug 19, 2022, Vitaly Kuznetsov wrote: >> Sean Christopherson <seanjc@xxxxxxxxxx> writes: >> >> > On Tue, Aug 02, 2022, Vitaly Kuznetsov wrote: >> >> diff --git a/arch/x86/kvm/vmx/evmcs.h b/arch/x86/kvm/vmx/evmcs.h >> >> index f886a8ff0342..4b809c79ae63 100644 >> >> --- a/arch/x86/kvm/vmx/evmcs.h >> >> +++ b/arch/x86/kvm/vmx/evmcs.h >> >> @@ -37,16 +37,9 @@ DECLARE_STATIC_KEY_FALSE(enable_evmcs); >> >> * EPTP_LIST_ADDRESS = 0x00002024, >> >> * VMREAD_BITMAP = 0x00002026, >> >> * VMWRITE_BITMAP = 0x00002028, >> >> - * >> >> - * TSC_MULTIPLIER = 0x00002032, >> >> * PLE_GAP = 0x00004020, >> >> * PLE_WINDOW = 0x00004022, >> >> * VMX_PREEMPTION_TIMER_VALUE = 0x0000482E, >> >> - * GUEST_IA32_PERF_GLOBAL_CTRL = 0x00002808, >> >> - * HOST_IA32_PERF_GLOBAL_CTRL = 0x00002c04, >> >> - * >> >> - * Currently unsupported in KVM: >> >> - * GUEST_IA32_RTIT_CTL = 0x00002814, >> > >> > Almost forgot: is deleting this chunk of the comment intentional? >> > >> >> Intentional or not (I forgot :-), GUEST_IA32_RTIT_CTL is supported/used >> by KVM since >> >> commit f99e3daf94ff35dd4a878d32ff66e1fd35223ad6 >> Author: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx> >> Date: Wed Oct 24 16:05:10 2018 +0800 >> >> KVM: x86: Add Intel PT virtualization work mode >> >> ... >> >> commit bf8c55d8dc094c85a3f98cd302a4dddb720dd63f >> Author: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx> >> Date: Wed Oct 24 16:05:14 2018 +0800 >> >> KVM: x86: Implement Intel PT MSRs read/write emulation >> >> but there's no corresponding field in eVMCS. It would probably be better >> to remove "Currently unsupported in KVM:" line leaving >> >> "GUEST_IA32_RTIT_CTL = 0x00002814" >> >> in place. > > GUEST_IA32_RTIT_CTL isn't supported for nested VMX though, which is how I > interpreted the "Currently unsupported in KVM:". Would it be accurate to extend > that part of the comment to "Currently unsupported in KVM for nested VMX:"? Yea, sounds good to me. FWIW, there are other controls which are currently missing in KVM, e.g. 'guest_ia32_lbr_ctl' (VMX field 0x2816) and we have no 'macro shenanigans' to catch the moment when support for these gets introduced in KVM. When this happens, we need to extend VMCS-to-eVMCS mapping (vmcs_field_to_evmcs_1) to support KVM-on-Hyper-V case and, when the corresponding field gets added to 'struct vmcs12', copy_enlightened_to_vmcs12()/copy_vmcs12_to_enlightened(). The whole process is manual and thus error prone... -- Vitaly