Here are some of the others that do not reflect the active VMCS controls. They reflect the physical CPU's capabilities, whether or not those capabilities are currently in use. I'm sure there are others in this category as well. cpu_has_vmx_virtualize_apic_accesses cpu_has_vmx_virtualize_x2apic_mode On Wed, Jun 27, 2018 at 9:30 AM, Jim Mattson <jmattson@xxxxxxxxxx> wrote: > On Wed, Jun 27, 2018 at 9:19 AM, Radim Krčmář <rkrcmar@xxxxxxxxxx> wrote: > >> They all seem to be using vmcs_config, which is a snapshot of active >> VMCS VM controls. This meaning corresponds to what nested_cpu_has* >> does. > > These do not check active VMCS controls: > > cpu_has_vmx_ept_execute_only > cpu_has_vmx_ept_2m_page > cpu_has_vmx_ept_1g_page > cpu_has_vmx_ept_4levels > cpu_has_vmx_ept_mt_wb > cpu_has_vmx_ept_5levels > cpu_has_vmx_ept_ad_bits > cpu_has_vmx_invept_context > cpu_has_vmx_invept_global > cpu_has_vmx_invvpid_individual_addr > cpu_has_vmx_invvpid_single > cpu_has_vmx_invvpid_global > cpu_has_vmx_invvpid > > I'm not convinced about all of the others, but I'll take a look.