On Fri, Aug 28, 2020 at 7:51 PM Xiaoyao Li <xiaoyao.li@xxxxxxxxx> wrote: > > On 8/29/2020 9:49 AM, Chenyi Qiang wrote: > > > > > > On 8/29/2020 1:43 AM, Jim Mattson wrote: > >> On Fri, Aug 28, 2020 at 1:54 AM Chenyi Qiang <chenyi.qiang@xxxxxxxxx> > >> wrote: > >>> > >>> KVM supports the nested VM_{EXIT, ENTRY}_LOAD_IA32_PERF_GLOBAL_CTRL and > >>> VM_{ENTRY_LOAD, EXIT_CLEAR}_BNDCFGS, but they doesn't expose during > >>> the setup of nested VMX controls MSR. > >>> > >> > >> Aren't these features added conditionally in > >> nested_vmx_entry_exit_ctls_update() and > >> nested_vmx_pmu_entry_exit_ctls_update()? > >> > > > > Yes, but I assume vmcs_config.nested should reflect the global > > capability of VMX MSR. KVM supports these two controls, so should be > > exposed here. > > No. I prefer to say they are removed conditionally in > nested_vmx_entry_exit_ctls_update() and > nested_vmx_pmu_entry_exit_ctls_update(). > > Userspace calls vmx_get_msr_feature() to query what KVM supports for > these VMX MSR. In vmx_get_msr_feature(), it returns the value of > vmcs_config.nested. As KVM supports these two bits, we should advertise > them in vmcs_config.nested and report to userspace. It would be nice if there was an API to query what MSR values KVM supports for a specific VCPU configuration, but given that this is a system ioctl, I agree with you.