On Thu, 2021-05-06 at 10:32 +0000, ilstam@xxxxxxxxxxx wrote: > From: Ilias Stamatis <ilstam@xxxxxxxxxx> > > Expose the TSC scaling feature to nested guests. > > Signed-off-by: Ilias Stamatis <ilstam@xxxxxxxxxx> > --- > arch/x86/kvm/vmx/nested.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > index a1bf28f33837..639cb9462103 100644 > --- a/arch/x86/kvm/vmx/nested.c > +++ b/arch/x86/kvm/vmx/nested.c > @@ -2277,7 +2277,8 @@ static void prepare_vmcs02_early(struct vcpu_vmx *vmx, struct vmcs12 *vmcs12) > SECONDARY_EXEC_ENABLE_USR_WAIT_PAUSE | > SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY | > SECONDARY_EXEC_APIC_REGISTER_VIRT | > - SECONDARY_EXEC_ENABLE_VMFUNC); > + SECONDARY_EXEC_ENABLE_VMFUNC | > + SECONDARY_EXEC_TSC_SCALING); > if (nested_cpu_has(vmcs12, > CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)) > exec_control |= vmcs12->secondary_vm_exec_control; > @@ -6483,7 +6484,8 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps) > SECONDARY_EXEC_RDRAND_EXITING | > SECONDARY_EXEC_ENABLE_INVPCID | > SECONDARY_EXEC_RDSEED_EXITING | > - SECONDARY_EXEC_XSAVES; > + SECONDARY_EXEC_XSAVES | > + SECONDARY_EXEC_TSC_SCALING; > > /* > * We can emulate "VMCS shadowing," even if the hardware Seems to be correct. I don't yet have experience with how VMX does the VMX capablity msrs and primary/secondary/entry/exit/pinbased control fitering for features that are not supported on the host, but after digging through it this seems to be OK. Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky